Я пытаюсь интегрировать API проблем github в проект. Я думаю, что соблюдаю правила oauth и все, что необходимо и упоминается на http://develop.github.com/p/issues.html, но похоже, что это не работает. Я не получаю подробного сообщения об ошибке, только 401.
- Я зарегистрировал приложение oauth в github (api v2) и предоставил URL-адрес обратного вызова.
- я создаю URL-адрес аутентификации: https://github.com/login/oauth/authorize?client_id=...&redirect_uri=http://.../no_port/
- Они отправляют мне код (токен запроса), я обмениваю его токеном доступа, он работает нормально. Проблемы:
- Я могу следить за своими проблемами в своих репозиториях, но если я просто соавтор, это 401 (неавторизованный)
- Невозможно создать новую проблему, даже в моем собственном репо: POST: http://github.com/api/v2/json/issues/open/:user/:repo ПАРАМЕТРЫ: body = & login = & token = 6 & title =
фактические реализации с django, python:
url = 'https://github.com/login/oauth/access_token?client_id=%(client_id)s&redirect_uri=%(redirect_uri)s&client_secret=%(client_secret)s&code=%(code)s' % locals()
req = urllib2.Request(url)
response = urllib2.urlopen(req).read()
access_token = re.search(r'access_token=(\w+)', response).group(1)
url = 'http://github.com/api/v2/json/issues/open/%(user)s/%(repo)s' % locals()
params = urllib.urlencode({'login': user, 'token': access_token, 'title': 'title', 'body': 'body'})
req = urllib2.Request(url, params)
try:
response = urllib2.urlopen(req)
except HTTPError, e:
return HttpResponse('[*] Its a fckin %d' % e.code)
except URLError, e:
return HttpResponse('[*] %s\n' % repr(e.reason))
else:
resp = json.loads(response.read())