Comment se connecter avec l'API ?

L’auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

J’ai eu envie de jouer avec l’API mais j’ai vite été bloqué par la limite des 60 requêtes anonymes par heure. J’ai donc regardé la documentation de l’API et lu les quelques sujets à ce propos sur le forum. J’ai les droits administrateurs donc j’ai pu me créer moi-même une paire de client_id et client_secret dans l’interface d’administration de Zeste de Savoir. Par contre, je n’arrive pas à générer un access_token.

import requests

client_id = "foo"
client_secret = "bar"
username = "Situphen"
password = "truc"

# Essai 1

data = {'grant_type': 'password', 'username': username, 'password': password, 'client_id': client_id, 'client_secret': client_secret}

response = requests.post('https://zestedesavoir.com/oauth2/token/', data=data)

print(response.content)
# => b'{"error": "unsupported_grant_type"}'

# Essai 2

data = {'grant_type': 'password', 'username': username, 'password': password}

response = requests.post('https://zestedesavoir.com/oauth2/token/', data=data, auth=(client_id, client_secret))

print(response.content)
# => b'{"error": "unsupported_grant_type"}'

Quelqu’un sait où est mon erreur ?

Situphen

Édité par Situphen

Corruptible avec des crêpes au sirop d’érable ou une bonne bouteille de Côteaux-du-Layon

+0 -0

Je ne saurais pas t’aider directement, mais tu peux t’inspirer du code de @tleb avec le projet zds-user-map.

https://github.com/tleb/zds-user-map/blob/master/zeste_de_savoir.py

Edit: ne serait-ce pas parce que l’authentification par mot de passe est désactivé ?

Edit2:

grant type : Renseignez Resource owner password-based pour baser l’authentification sur le mot de passe du compte utilisateur sur la plateforme.

Ce n’est pas très clair, mais ça me laisse pensez que ton grant_type est incorrect.

Édité par WinXaito

+1 -0
Auteur du sujet

Cette réponse a aidé l’auteur du sujet

Merci de ta réponse @WinXaito !

Je n’avais pas pensé à regarder le code du bot de tleb mais maintenant j’ai compris mon erreur, il faut utiliser l’argument json et non pas data de la fonction requests.post() comme ceci : requests.post('https://zestedesavoir.com/oauth2/token/', json=json).

Corruptible avec des crêpes au sirop d’érable ou une bonne bouteille de Côteaux-du-Layon

+0 -0

Btw, toujours pas d’API pour le forum ?

/api/forums/message/{id}/karma/ j’ai jamais compris ce point d’entré. Les membres ont des karma pas les messages si ?

ache.one                 🦹         👾                                🦊

+0 -0

Ah ! :D

Merci !

Édité par ache

ache.one                 🦹         👾                                🦊

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte