Доступ к API Github с использованием Personal Access Token с Python urllib2
Я обращаюсь к API Github v3, он работал нормально, пока не набрал ограничение скорости, поэтому я создал токен личного доступа со страницы настроек Github. Я пытаюсь использовать токен с urllib2 и следующий код:
from urllib2 import urlopen, Request
url = "https://api.github.com/users/vhf/repos"
token = "my_personal_access_token"
headers = {'Authorization:': 'token %s' % token}
#headers = {}
request = Request(url, headers=headers)
response = urlopen(request)
print(response.read())
Этот код работает нормально, если я раскомментирую прокомментированную строку (до тех пор, пока я не удалю ограничение скорости 60 запросов в час). Но когда я запускаю код как есть, я получаю urllib2.HTTPError: HTTP Error 401: Unauthorized
Что я делаю неправильно?
Ответы
Ответ 1
Я не знаю, почему этот вопрос был отмечен. Во всяком случае, я нашел ответ:
from urllib2 import urlopen, Request
url = "https://api.github.com/users/vhf/repos"
token = "my_personal_access_token"
request = Request(url)
request.add_header('Authorization', 'token %s' % token)
response = urlopen(request)
print(response.read())
Ответ 2
Я понимаю, что этот вопрос несколько лет, но если кто-то хочет аутентифицироваться с помощью токена персонального доступа, а также используя методы requests.get
и requests.post
, вы также можете использовать следующий метод:
request.get(url, data=data, auth=('user','{personal access token}'))
Это просто базовая аутентификация как описано в библиотеке запросов, которая, по-видимому, вы можете передавать токены доступа к в соответствии с github api docs.
Из документов:
Через токены OAuth Альтернативно вы можете использовать токены доступа или Тоны OAuth вместо вашего пароля.
curl -u username:token https://api.github.com/user
Этот подход полезно, если ваши инструменты поддерживают только базовую аутентификацию, но вы хотите использовать функции защиты токена доступа OAuth.