시스템 API 키로 특정 사용자의 "hot" 및 "latest" 주제를 가져올 수 있나요?

제 사용 사례는 다음과 같습니다. 포럼 홈 페이지에 최신 인기 주제 상위 5개를 표시하고 싶습니다. 이 목록은 특정 Discourse 사용자에게 적합한 내용으로 필터링되어야 합니다. 예를 들어, 일부 사용자는 비공개 카테고리에 접근할 수 있으며(이 카테고리에는 최신/인기 목록에 올라와야 할 주제가 포함되어 있음), 다른 일부 사용자는 접근할 수 없습니다.

현재 필요한 데이터를 가져오기 위해 Discourse API를 호출할 때 시스템 API 키를 사용하고 있습니다. 이렇게 하면 숨겨진 카테고리가 포함된 결과가 반환될 뿐만 아니라, 사용자가 이미 오래전부터 고정 해제한 주제라도 목록 상단에 항상 전역 고정(topical) 주제가 포함됩니다.

따라서 특정 사용자를 위한 최신/인기 주제, 포럼 전체가 아닌 결과를 가져오는 것이 왜 필요한지 이해하실 수 있을 것입니다.

만약 사용자 API 키를 호출하여 이 기능을 구현할 수 있다면, 그것은 별개의 문제입니다. 사용자가 이러한 결과를 가져올 때마다 사용자 API 키를(프로그래매틱하게) 생성하는 것은 매우 번거로워 보입니다. (다른 용도로 사용하지 않으므로, 즉시 API 키를 삭제해야 할 것입니다.) 이것이 유일한 방법인가요?

저는 다음과 같은 해결책을 제안합니다. latest.json 또는 top.json을 시스템 API 키로 호출할 때, 결과를 제한하기 위해 선택적인 사용자 ID 매개변수를 받을 수 있도록 하는 것입니다.

모든 사용자를 위한 API 키를 생성하면 해당 키가 실행될 때 사용할 사용자를 지정할 수 있습니다. 이 경우 해당 사용자로 위장하여 실행됩니다.

Hi @sam, 와, 훌륭하네요! 그렇다면 엔드포인트는 무엇인가요? 저는 전체 사용자를 위한 시스템 API 키를 가지고 있습니다.

모든 최신 항목을 필터링 없이 가져다주는 일반 엔드포인트:

/latest.json

사용자별로 시도해 보았지만 작동하지 않는 엔드포인트들 (username은 내 포럼의 사용자 이름임):

/username/latest.json
/latest/username.json
/username/latest
/latest/username
/latest/4.json (사용자 이름 대신 사용자 ID 사용)
등등.

찾아낼 수가 없네요 :-\

위 문서의 예시처럼 Api-Username 헤더에 사용자 이름을 지정해야 합니다.

아하, 고마워. 이제 알겠어.