Linkedin API:无法在python中使用Linkedin API获取访问令牌

时间:2016-06-29 12:22:01

标签: python linkedin

我正在尝试使用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

我已经阅读过其他地方,这可能是因为访问令牌的生命周期很短,但是,我设法很快地复制和粘贴并仍然得到相同的错误。知道为什么或如何解决这个问题?

非常感谢

1 个答案:

答案 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"]);

希望这对你有用。在努力寻求解决方案后,它出现了并不那么复杂。