我正在编写一个访问linkedin的命令行应用程序。我正在使用python-linkedin API。
事情按照我的预期运作,但我对身份验证过程抱有很大的抱怨。目前,我需要:
我不喜欢手动执行步骤2到5,所以我想自动化它们。我想做的是:
提问时间:
修改:
初始化令牌的代码(使用接受答案的方法):
api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)
result = api.request_token()
if not result:
print 'Initialization error:', api.get_error()
return
print 'Go to URL:', api.get_authorize_url()
print 'Enter verifier: ',
verifier = sys.stdin.readline().strip()
if not result:
print 'Initialization error:', api.get_error()
return
result = api.access_token(verifier=verifier)
if not result:
print 'Initialization error:', api.get_error()
return
fin = open('tokens.pickle', 'w')
for t in (api._request_token, api._request_token_secret,
api._access_token, api._access_token_secret ):
pickle.dump(t, fin)
fin.close()
print 'Initialization complete.'
使用令牌的代码:
api = linkedin.LinkedIn(KEY, SECRET, RETURN_URL)
tokens = tokens_fname()
try:
fin = open(tokens)
api._request_token = pickle.load(fin)
api._request_token_secret = pickle.load(fin)
api._access_token = pickle.load(fin)
api._access_token_secret = pickle.load(fin)
except IOError, ioe:
print ioe
print 'Please run `python init_tokens.py\' first'
return
profiles = api.get_search({ 'name' : name })
答案 0 :(得分:2)
由于您计划仅授权自己一次,然后根据自己的信息调用API,我只需手动检索您的访问令牌,而不必担心自动化它。
当您授权给定的应用程序时,LinkedIn生成的用户访问令牌是永久性的,除非您在授权屏幕上另行指定。您需要做的就是使用您的应用程序生成授权屏幕,完成整个过程并在成功时回显并存储您的用户访问令牌(令牌和秘密)。一旦你有了,你就可以将它们硬编码到文件,数据库等中,并在调用API时使用它们。
它在PHP中,但this demo基本上就是这样。只需修改demo.php脚本,根据需要回显您的令牌。
答案 1 :(得分:1)
我自己没有尝试过,但我相信理论上应该可以使用Selenium WebDriver和PyVirtualDisplay。这个想法被描述为here。