Как модератор, я хотел бы использовать API для форума Discourse. Обычно он активирован, и мне удалось получить API-ключ. Я использовал этот скрипт:
Мне удалось получить ключ длиной 32 символа (это правильно?), и в настройках безопасности моей учетной записи приложение отображается со следующими разрешениями:
Чтение всего
Запись всего
Обновления в реальном времени
Push-уведомления внешним сервисам
Чтение и очистка уведомлений
Чтение информации о сессии пользователя
Создание одноразового токена входа
Это выглядит довольно хорошо. Однако, когда я пытаюсь получить доступ через скрипт с помощью:
from pydiscourse import DiscourseClient
client = DiscourseClient(
'https://forum.example.com',
api_username='tflidd',
api_key='388b79103056fede1d3223dae032df99')
client.user("tflidd")
Это библиотека Python, так что, полагаю, она должна работать. API-ключ имеет этот конкретный формат, это не сам ключ. Я получаю ошибку, что либо имя пользователя, либо API-ключ недействительны.
Должен ли я использовать свое имя пользователя или название приложения?
Верен ли хотя бы формат API-ключа, возможно, что-то пошло не так при расшифровке?
Если я использую curl, как здесь (Discourse-user-notes API - #4 by codetricity):
curl https://forum.example.com/t/95783.json\ -H 'Api-Key: 388b79103056fede1d3223dae032df99'\ -H 'Api-Username: tflidd'
Я также получаю ошибку:
{"errors":["You are not permitted to view the requested resource. The API username or key is invalid."],"error_type":"invalid_access"}
Если я открою тот же URL с JSON в браузере, где я авторизован, веб-браузер покажет правильный объект JSON. Значит, тема существует, и у меня есть права доступа к ней (это даже была публичная тема).
Я просто модератор, без прямого доступа администратора. Я могу запросить дополнительную информацию из логов, если у вас есть подсказки, на что обратить внимание.
На всякий случай, если это важно, установленная версия: 3.2.0.beta4-dev