首页 > 解决方案 > 我怎样才能获得访问令牌?OAuth1与指令参数不兼容

问题描述

我使用来自官方网站的指令,在最后一步他们说: OAuth1 使用此参数oauth_token 和 oauth_verifier 响应,我是从 github 中的这个instaction 中获得的,github中的最后一步出现错误。所以我尝试使用 OAuth1 标准库来做最后一步,我不明白我做错了什么,请治疗,我整天都在谷歌搜索和检查这个团队的 stackoverflow,但新鲜空气只能在https://discussion中找到.evernote.com/topic/18710-access-token-secret-returning-blank/有人以某种方式通过 AppEngine-OAuth-Library(wtf) 获取访问令牌。

github - https://github.com/evernote/evernote-sdk-python

官方网站 - https://dev.evernote.com/doc/articles/authentication.php

oauth_token = "sudden1306.16789DDB2A2.68747470XXXF2F7777772E666F6F2E636F6D2F.E3319C18235C586BFB93C58A45551293"
oauth_verifier = "62D64740CXXXX9788649BA6E6A0661C7"
consumer_key = 'suddXXX06'
consumer_secret = '9e36013XXXXd195'
request_token_url = 'https://evernote.com/oauth'

oauth = OAuth1Session(client_key=consumer_key, client_secret=consumer_secret,
                      resource_owner_key=oauth_token, resource_owner_secret=None,
                      verifier=oauth_verifier)
# oauth_tokens = requests.get(request_token_url, auth=oauth)
oauth_tokens = oauth.get(request_token_url)
print(oauth_tokens)

并得到

<Response [404]>

我已经激活了 API 密钥

标签: pythonevernote

解决方案


我解决了这个问题。我尝试从这个讨论中回答为什么我在尝试使用 Evernote 进行身份验证时收到 KeyError?有一些细节。

我安装了需要的 python 2.7 和库。并开始获取请求令牌授权 url。我保存了 request_token['oauth_token'] 和 request_token['oauth_token_secret']。

consumer_key = 'suddXXX306'
consumer_secret = '9e36XX8d195'
request_token_url = 'https://evernote.com/oauth'

client1 = EvernoteClient(
    consumer_key=consumer_key,
    consumer_secret=consumer_secret,
    sandbox=False
)


request_token = client1.get_request_token('http://foo.com')
print client1.get_authorize_url(request_token)

print request_token
print request_token['oauth_token']
print request_token['oauth_token_secret']
exit()

然后我在我的浏览器中从授权 url中选择了 URL 并得到了在 URL oauth_verifier=...(保存)示例

最后一步,我将所有需要的信息放入此代码。

oauth_verifier="7D279E750C4CXXXXX7828E173F4"
oauth_token = 'suddeXXX687474703XXXXF6D.5142FBBC6D9CEEE7ADEAD6E65DDD697B'
oauth_token_secret = "2AE25XXXXXACC1D3F65EA887"

consumer_key = 'suddXXXX6'
consumer_secret = '9e3XXXXXX195'

client = EvernoteClient(
    consumer_key=consumer_key,
    consumer_secret=consumer_secret,
    sandbox=False
)

access_token = client.get_access_token(
    oauth_token,
    oauth_token_secret,
    oauth_verifier
)

print access_token
exit()

并获得了access_token。如果您只需要用于生产印象笔记 API 的令牌,这是最​​简单的方法。


推荐阅读