【发布时间】:2014-10-08 19:48:13
【问题描述】:
我一直在关注 Twitter 的 3-legged oauth 设置指南: https://dev.twitter.com/docs/auth/implementing-sign-twitter
第 1 步:获取请求令牌
对于他们的身份验证,第 1 步需要发出一个包含 base64 编码的公钥和密钥的发布请求。
key = "CONSUMER_KEY"
secret = "CONSUMER_SECRET"
auth = base64.encodestring("%s:%s" % (key, secret)).replace("\n", "")
data = {}
data["grant_type"] = "client_credentials"
headers = {}
headers["Authorization"] = "Basic " + auth
headers["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8"
headers["Accept-Encoding"] = "gzip"
response = requests.post("https://api.twitter.com/oauth2/token",
headers=headers, data=data)
第一个请求返回一个有效的响应代码 200 以及一个访问令牌。响应如下所示: {u'access_token': u'AAAAAAAAAAAAAAAAAAAAAAAAHHHHH... ...vncbi', u'token_type': u'bearer'}
第 2 步:重定向用户
这就是问题所在。根据文档,用户只需重定向到格式如下的授权 url:
https://api.twitter.com/oauth/authenticate?oauth_token=AAAAAAAAAAAAAAAAAAAAAHHHHH... ...vncbi
但是,当我进入此页面时,我收到一条错误消息:
我错过了什么吗?正在生成 access_token 没有问题。我不确定是否显示此消息,因为我在此过程的早期设置错误。我也不确定如何检查 oauth 令牌是否已过期。
【问题讨论】: