Ошибка: URL Discourse_api не найден

Всем привет,

Я пытаюсь использовать gem 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 тоже правильный. Что ещё стоит проверить? :slight_smile:

Спасибо!

Скорее всего, это проблема аутентификации по API-ключу.

Если вы откроете новое окно браузера в режиме инкогнито, где вы не авторизованы на своём сайте, и перейдёте по маршруту https://yoursite/admin/dashboard.json, вы получите:

{"errors":["The requested URL or resource could not be found."],"error_type":"not_found"}

Однако, если вы авторизованы на своём сайте и перейдёте по тому же URL, вы должны увидеть результат в формате JSON.

Ещё один момент, который стоит проверить: привязан ли API-ключ ко «всем пользователям» или к «одному пользователю»? Если он установлен для одного пользователя, убедитесь, что он соответствует пользователю, от имени которого выполняется запрос к API.

Тем не менее, похоже, что два конечных пункта дашборда в API-библиотеке требуют обновления. Метод get_dashboard_stats всё ещё работает, но возвращает меньше данных, чем раньше, и похоже, что get_dashboard_stats_totals также нужно обновить.

Я согласен, что проблема, скорее всего, связана с ключами, но я пробовал настройки «Все пользователи» и «Один пользователь» (используя имя администратора), и всё равно получаю ошибку «Not Found», которую вы опубликовали.

Ключ верный, URL верный, я перепробовал все различные настройки, а также другие конечные точки, перечисленные в примерах API. Все возвращают сообщение «Запрошенный URL или ресурс не найден». Не знаю, что ещё можно сделать :smiley: :sweat_smile: Предполагаю, что пользовательские области действия здесь не применяются для глобальных ключей?

Вы можете выполнить эту команду

gem list discourse_api

чтобы узнать, какую версию гема discourse_api вы используете?

0.10.0 — скорее всего, именно поэтому: он пытается использовать параметры URL вместо заголовков HTTP :slight_smile: Спасибо!