Подтвердить что ты не робот

Запрос python с аутентификацией (access_token)

Я пытаюсь получить API-запрос в python. Командная строка

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

дает некоторый вывод json. myToken - это шестнадцатеричная переменная, которая остается постоянной на всем протяжении. Я хотел бы сделать этот вызов из python, чтобы я мог перебирать различные идентификаторы и анализировать вывод. Есть идеи? До того, как была необходима аутентификация, я сделал это с urllib2. Я также рассмотрел модуль запросов, но не мог понять, как это сделать.

Большое спасибо.

4b9b3361

Ответ 1

Пакет запросов имеет очень хороший API для HTTP-запросов, добавление настраиваемого заголовка работает следующим образом (источник: официальный документ):

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

Если вы не хотите использовать внешнюю зависимость, то же самое с использованием urllib2 из стандартной библиотеки выглядит следующим образом (источник: отсутствующее руководство):

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

Ответ 2

У меня была такая же проблема при попытке использовать токен с Github.

Единственный синтаксис, который работал у меня с Python 3:

import requests

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

Ответ 3

Я добавлю немного подсказки: кажется, что вы передаете, поскольку значение ключа заголовка зависит от вашего типа авторизации, в моем случае это было PRIVATE-TOKEN

header = {'PRIVATE-TOKEN': 'my_token'}
response = requests.get(myUrl, headers=header)