Доступ к API Github с помощью Личного маркера доступа с Python urllib2

Я обращаюсь к GitHub API 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

что я делаю не так?

2 ответов


Я не знаю, почему этот вопрос был уценен. Во всяком случае, я нашел ответ:--2-->

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())

Я понимаю, что этот вопрос несколько лет, но если кто-то хочет auth с личным маркер доступа, а также с помощью requests.get и requests.post методы у вас также есть возможность использовать метод, приведенный ниже:

request.get(url, data=data, auth=('user','{personal access token}')) 

Это просто обычная проверка подлинности как описано в библиотеке запросов, который, по-видимому, вы можете передать личные маркеры доступа к согласно документам api GitHub.

документы:

Через Токены OAuth Альтернативно,вы можете использовать личные маркеры доступа или OAuth токены вместо пароля.

curl -u username:token https://api.github.com/user

этот подход полезно, если ваши инструменты поддерживают только базовую аутентификацию, но вы хотите воспользуйтесь преимуществами функций безопасности маркеров доступа OAuth.