我正在尝试使用Linkedin API检索访问令牌。我使用了python的linkedin包。
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()
我收到以下错误:
---------------------------------------------------------------------------
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
我已经阅读过其他地方,这可能是因为访问令牌的生命周期很短,但是,我设法很快地复制和粘贴并仍然得到相同的错误。知道为什么或如何解决这个问题?
非常感谢
答案 0 :(得分:1)
我遇到了同样的问题,证明我粘贴了错误的授权码。我不认为它可以很快过期,以便不能使用,但是只要你能够使用它我就可以更改代码以便能够粘贴它:
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()
在我的情况下,redirect_uri位于本地主机上,我在web根目录中有一个index.php,它打印出你需要在python脚本中粘贴的代码。 index.php是这样的:
echo htmlspecialchars($_GET["code"]);
希望这对你有用。在努力寻求解决方案后,它出现了并不那么复杂。