Obtenir un token pour l'API en Python

Bonjour à tous,

Je souhaite passer un code bash, que Chocobozz m’avait fait, en Python pour me faciliter la tâche et la maintenance ; mais je ne suis pas expert mais j’apprends :slight_smile:

Je bloque sur l’appel pour obtenir le jeton, j’ai bien le clientId et le clientSecret.

Voici le code bash fonctionnel :

#demande du token d'authentification
clientResponse=$(curl -s "$instance/api/v1/oauth-clients/local")
clientId=$(echo "$clientResponse" | jq -r '.client_id')
clientSecret=$(echo "$clientResponse" | jq -r '.client_secret')
tokenResponse=$(curl -s "$instance/api/v1/users/token" --data "client_id=$clientId&client_secret=$clientSecret&response_type=code&grant_type=password&scope=upload&username=$username&password="$password)
token=$(echo "$tokenResponse" | jq -r '.access_token')

et voici mon code Python qui me renvoie un 401 (INSTANCE, USERNAME et PASSWORD sont définis au sommet de mon programme)

urlclient = INSTANCE + '/api/v1/oauth-clients/local'
urltoken = INSTANCE + '/api/v1/users/token'

response=requests.get(urlclient)

if response.status_code == 200:
    clientResponse = response.json()
    clientId = clientResponse['client_id']
    clientSecret = clientResponse['client_secret']

parametres = {'client_id' : clientId, 'client_secret': clientSecret, 'response_type': 'code', 'grant_type': 'password', 'scope': 'upload', 'username': USERNAME, 'password': PASSWORD}

tokenResponse = requests.get(urltoken, params = parametres)

Si vous avez une idée de ce qui bloque, merci :pray:

Bon ben, merci ChatGPT que j’utilise de temps en temps avec Bavarder. J’utilisais la méthode GET au lieu de POST :sob:

La ligne à changer : ```tokenResponse = requests.post(urltoken, data = parametres)``

Voici le prompt et la réponse de ChatGPT : PrivateBin