2016-06-29 7 views
1

Ich versuche, Zugriffstoken mithilfe der Linkedin-API abzurufen. Ich benutze das linkedin-Paket für Python.Linkedin-API: Ich kann die Zugriffstoken nicht über die Linkedin-API in Python abrufen

from linkedin import linkedin 

API_KEY = '*****' 

API_SECRET = '******' 

RETURN_URL = 'http://localhost:8080/hello' #(this works ok) 


authentication = linkedin.LinkedInAuthentication(API_KEY, API_SECRET, RETURN_URL) 

print authentication.authorization_url # open this url on your browser 
application = linkedin.LinkedInApplication(authentication) 

authentication.authorization_code = 'the code obtained from login in in previous link' 

authentication.get_access_token() 

bekomme ich folgende Fehlermeldung:

--------------------------------------------------------------------------- 
LinkedInError        Traceback (most recent call last) 
<ipython-input-26-a0063ada08a2> in <module>() 
----> 1 authentication.get_access_token() 

C:\Users\soledad.galli\AppData\Local\Continuum\Anaconda2\lib\site-packages\linkedin\linkedin.py in get_access_token(self, timeout) 
113    'client_secret': self.secret} 
114   response = requests.post(self.ACCESS_TOKEN_URL, data=qd, timeout=timeout, verify=False) 
--> 115   raise_for_error(response) 
116   response = response.json() 
117   self.token = AccessToken(response['access_token'], response['expires_in']) 

C:\Users\soledad.galli\AppData\Local\Continuum\Anaconda2\lib\site-packages\linkedin\utils.pyc in raise_for_error(response) 
61     message = '%s: %s' % (response.get('error', error.message), 
62          response.get('error_description', 'Unknown Error')) 
---> 63     raise LinkedInError(message) 
64    else: 
65     raise LinkedInError(error.message) 


LinkedInError: invalid_request: missing required parameters, includes an invalid parameter value, parameter more than once. : Unable to retrieve access token : authorization code not found 

ich woanders gelesen, dass dies sein könnte, weil die Zugriffstoken eine sehr kurze Lebensdauer haben, aber ich schaffe ganz schnell kopieren und einfügen und immer noch den gleichen Fehler bekommen. Irgendeine Idee warum oder wie man das löst?

Vielen Dank

Antwort

1

hatte ich das gleiche Problem und es erwies sich als ich eine falsche Autorisierungscode einfügen. Ich glaube nicht, es so bald um ablaufen kann nicht in der Lage sein, früher, aber in der Lage sein, es zu benutzen, sobald Sie bekommen ich den Code ändern Sie es in der Lage sein, ein:

authentication.authorization_url # open this url on your browser 
print authentication.authorization_url 
application = linkedin.LinkedInApplication(authentication) 
code = raw_input("code = ") 
authentication.authorization_code = code 
print authentication.get_access_token() 

In In meinem Fall ist die redirect_uri auf dem lokalen Host, wo ich eine index.php im Web-Root habe, die den Code ausgibt, den man in das Python-Skript einfügen muss. Die index.php ist dies:

echo htmlspecialchars($_GET["code"]); 

Hoffe, das wird für Sie arbeiten. Nachdem ich mich um eine Lösung gekämpft hatte, kam es auf, dass es nicht so kompliziert war.