web-dev-qa-db-fra.com

python demande avec authentification (access_token)

J'essaie d'obtenir une requête d'API en python. La ligne de commande

curl --header "Authorization:access_token myToken" https://website.com/id

donne une sortie json. myToken est une variable hexadécimale qui reste constante. Je voudrais passer cet appel depuis python afin de pouvoir parcourir les différents identifiants et analyser le résultat. Toutes les idées regardez le module de demandes mais ne peut pas trouver comment faire cela.

Merci beaucoup.

50
user1895406

Le paquet demandes a une très belle API pour les requêtes HTTP, ajouter un en-tête personnalisé fonctionne comme ceci ( source: documentation officielle ):

>>> import requests
>>> response = requests.get(
... 'https://website.com/id', headers={'Authorization': 'access_token myToken'})

Si vous ne souhaitez pas utiliser de dépendance externe, la même chose en utilisant urllib2 de la bibliothèque standard ressemble à ceci ( source: le manuel manquant ):

>>> import urllib2
>>> response = urllib2.urlopen(
... urllib2.Request('https://website.com/id', headers={'Authorization': 'access_token myToken'})
87
wosc

J'ai eu le même problème en essayant d'utiliser un jeton avec Github.

La seule syntaxe qui a fonctionné pour moi avec Python 3 est:

import requests

myToken = '<token>'
myUrl = '<website>'
head = {'Authorization': 'token {}'.format(myToken)}
response = requests.get(myUrl, headers=head)
19
bloodrootfc