social_core google framework auth python django http-status-code-401 github-api

google - python social auth rest framework



Github emite api 401, ¿por qué?(django) (2)

Estoy tratando de integrar los api de github en un proyecto. Creo que estoy siguiendo las reglas de oauth, y todo lo que se necesita y se menciona en http://develop.github.com/p/issues.html , pero parece que no funciona. No obtengo un mensaje de error detallado, solo un 401.

implementaciones reales con 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())


No sé si es exactamente lo que necesita, pero este es el código que utilizo en uno de mis proyectos para abrir problemas:

def issue(self, channel, network, nick, user, title, repoName): body = ''Issue sent from %s at %s by %s (registered as %s)'' % / (channel, network, nick, user.name) login = self.registryValue(''login'') token = self.registryValue(''token'') data=''title=%s&body=%s&login=%s&token=%s'' % (title, body, login, token) url = ''http://github.com/api/v2/json/issues/open/'' + repoName response = json.loads(urllib.urlopen(url, data=data).read()) id = response[''issue''][''number''] return id


Podría ser el problema ..

params = urllib.urlencode( {''login'': user, ''token'': access_token, ''title'': ''title'', ''body'': ''body''} )

Usted especifica que el parámetro de título tiene el valor literal de ''título'', igual que ''cuerpo''.

¿Es posible que desee esto en su lugar? ..

params = urllib.urlencode( {''login'': user, ''token'': access_token, ''title'': title, ''body'': body} )