여러분 안녕하세요,
discourse_api 지목을 사용하려고 시도하고 있습니다:
client = DiscourseApi::Client.new("https://<mysite>.com")
client.api_key = "<my global key>"
client.api_username = "system"
..이것을 기본 설정으로 한 후
client.latest_topics
은 데이터를 정상적으로 반환하지만..
client.get_dashboard_stats
는 URL “not_found” 오류를 반환합니다. client.latest_topics는 작동하므로, 라우트가 키를 요구할 때 무언가 실패하는 것 같습니다.
키가 올바른지 두 번 확인했고, 심지어 새로운 키를 만들어서 시도해 보았습니다. 글로벌 액세스 옵션도 체크되어 있습니다. URL도 정확합니다. 다른 것을 확인해야 할까요?
감사합니다!
blake
(Blake Erickson)
10월 23, 2020, 2:13오후
2
이 문제는 API 키 인증과 관련이 있을 가능성이 높습니다.
사이트에 로그인하지 않은 상태에서 새로운 시크릿(비공개) 브라우저 창을 열어 해당 경로인 https://yoursite/admin/dashboard.json으로 이동하면 다음 결과가 반환됩니다.
{"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}
반면에 사이트에 로그인된 상태로 동일한 URL로 이동하면 JSON 결과를 확인할 수 있어야 합니다.
확인해야 할 또 다른 사항은 API 키가 "모든 사용자(all users)"인지 "단일 사용자(single user)"인지입니다. 단일 사용자로 설정되어 있다면, API 요청을 보내는 사용자와 일치하는지 확인하세요.
그럼에도 불구하고, API gem의 두 대시보드 엔드포인트가 업데이트가 필요한 것으로 보입니다. get_dashboard_stats는 여전히 작동하지만 이전만큼 많은 정보를 반환하지 않으며, get_dashboard_stats_totals는 업데이트가 필요해 보입니다.
키와 관련이 있을 가능성이 크다는 데 동의합니다. 하지만 “모든 사용자” 및 “단일 사용자” 설정(관리자 사용자 이름 사용)을 모두 시도해 보았음에도 불구하고, 게시하신 “not found” 오류가 여전히 발생합니다.
키는 정확하고 URL도 정확하며, API 예제에 나열된 다른 엔드포인트와 모든 다른 설정도 시도해 보았습니다. 모두 "요청한 URL 또는 리소스를 찾을 수 없습니다"라는 오류를 반환합니다. 더 이상 뭘 해야 할지 모르겠습니다 글로벌 키의 경우 사용자 스코프가 적용되지 않는 것 같습니다.
blake
(Blake Erickson)
10월 23, 2020, 10:11오후
4
이 명령을 실행해 주시겠어요?
gem list discourse_api
어떤 버전의 discourse_api gem을 사용 중인지 확인할 수 있습니다.
0.10.0 - 아마도 그게 원인인 것 같습니다. HTTP 헤더 대신 URL 매개변수를 사용하려고 하네요 감사합니다!