Ryan_NR
(Ryan)
Septembre 30, 2019, 2:34
1
Bonjour à tous, je suis un administrateur de notre instance Discourse, mais je ne parviens pas à interroger certaines endpoints.
Parfois, j’obtiens ceci :
D’autres fois, je reçois le message « Vous devez être connecté pour effectuer cette action ».
J’ai confirmé que la clé API que j’utilise est bien associée à mon compte administrateur et que l’API_Username correspond à mon propre nom d’utilisateur. Auriez-vous des conseils à ce sujet ?
Je suppose que l’appel n’envoie pas les identifiants correctement ?
blake
(Blake Erickson)
Octobre 1, 2019, 1:14
3
Vous pourriez essayer de transmettre les identifiants API dans l’en-tête de la requête plutôt que dans les paramètres de requête. Un exemple devrait être disponible dans le sujet de la documentation de l’API.
Ryan_NR
(Ryan)
Octobre 1, 2019, 1:14
4
Ça pourrait être le cas — je ne suis pas sûr — La configuration que j’ai est simplement la collection Postman téléchargée depuis ici :
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…
J’ai simplement remplacé la clé API, le nom d’utilisateur et l’URL de base.
Cette collection n’est-elle plus valide ?
Ryan_NR
(Ryan)
Octobre 1, 2019, 1:15
5
Merci @blake , je vais essayer.
blake
(Blake Erickson)
Octobre 1, 2019, 1:17
6
Ouais, certaines sont probablement obsolètes.
Ryan_NR
(Ryan)
Octobre 1, 2019, 1:21
7
@blake - Le passage des identifiants dans l’en-tête de la requête renvoie la même chose :
{
"errors": [
"Vous n'êtes pas autorisé à afficher la ressource demandée."
],
"error_type": "invalid_access"
}
blake
(Blake Erickson)
Octobre 1, 2019, 1:52
8
J’ai réussi à faire fonctionner la requête API des membres du groupe sur Meta avec cette commande 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"
Peut-être pouvez-vous utiliser la fonction « Copier en tant que commande curl » dans Postman et comparer.