Ryan_NR
(Ryan)
30.Сентябрь.2019 14:34:04
1
Всем привет — я администратор нашего экземпляра Discourse, но не могу выполнять запросы к некоторым конечным точкам.
Иногда я получаю это:
В других случаях мне выводится сообщение: Для этого необходимо войти в систему.
Я подтвердил, что используемый мной API-ключ привязан к моему аккаунту администратора, а параметр API_Username совпадает с моим именем пользователя. Не могли бы вы дать какие-либо советы по этому поводу?
Мне кажется, запрос не отправляет учётные данные корректно?
blake
(Blake Erickson)
01.Октябрь.2019 13:14:32
3
Вы можете попробовать передать учетные данные API в заголовке запроса вместо параметров запроса. Пример должен быть в разделе документации по API.
Ryan_NR
(Ryan)
01.Октябрь.2019 13:14:49
4
Возможно — я не уверен. У меня настроено только то, что скачано из коллекции Postman отсюда:
Discourse API
Please view the Discourse API Documentation site for detailed info:
https://docs.discourse.org
Authentication
API requests must use HTTP header based authentication. Pass your Api-Key and Api-Username as HTTP headers. Authentication via query parameters or request body is not supported (this was removed in April 2020). Please see the example cURL request below.
The only API endpoints that continue to support credentials in query parameters are requests to…
Я просто заменил API-ключ, имя пользователя и базовый URL.
Эта коллекция больше не актуальна?
Ryan_NR
(Ryan)
01.Октябрь.2019 13:15:03
5
Спасибо, @blake , я попробую.
blake
(Blake Erickson)
01.Октябрь.2019 13:17:35
6
Да, некоторые из них, вероятно, устарели.
Ryan_NR
(Ryan)
01.Октябрь.2019 13:21:55
7
@blake - Передача учетных данных в заголовке запроса возвращает то же самое:
{
"errors": [
"У вас нет прав для просмотра запрошенного ресурса."
],
"error_type": "invalid_access"
}
blake
(Blake Erickson)
01.Октябрь.2019 13:52:53
8
Мне удалось заставить запрос к API для получения участников группы работать на Meta с помощью этой команды curl:
curl -i -sS -X GET "https://meta.discourse.org/groups/my-private-group/members.json" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: key" \
-H "Api-Username: username"
Возможно, вы сможете использовать функцию «Копировать как команду curl» в Postman и сравнить результаты.