我一直在使用 netflix api 和 python oauth2 库的受保护身份验证。我提出签名请求没有问题,但是,为了允许用户使用他们的 netflix 帐户登录,我在尝试获取 access_token 时遇到了一些问题,我知道在某些情况下 OAuth 不返回 a verifier
,甚至如果它应该,但是在从 netflix 的授权页面重定向后,我得到如下信息:http://127.0.0.1:5000/authorized_user?oauth_token=some_token&oauth_verifier=
验证器为空。
我是图书馆的新手,不知道verfier
不存在时该怎么办。因为,我成功地将用户重定向到 netflix 登录/授权页面。我假设我的错误来自我不完全理解的这一步。下面是我正在尝试的简化(shell)版本。我很感激朝着正确的方向前进,我阅读了 netflix 文档并阅读了库文档,但不知道该怎么做。
# Get request token (temporary)
resp, content = client.request(REQUEST_TOKEN_URL, "GET")
if resp['status'] != '200':
raise Exception("Invalid response %s." % resp['status'])
request_token = dict(parse_qsl(content))
print 'Request token'
print ' --> oauth_token = %s' % request_token['oauth_token']
print ' --> oauth_token_secret = %s' % request_token['oauth_token_secret']
print ' --> login_url = %s' % request_token['login_url']
# Redirect to netflix for user authorization
print 'Go to the following link: '
login_url = request_token['login_url']
access_token_url = '%s&oauth_consumer_key=%s' % (login_url, CONSUMER_KEY)
accepted = 'n'
while accepted.lower() == 'n':
accepted = raw_input('Have you authorized me? (y/n) ')
resp, content = client.request(access_token_url, "POST")
token = oauth.Token(request_token['oauth_token'],
request_token['oauth_token_secret'])
client = oauth.Client(consumer, token)
resp, content = client.request(access_token_url, "POST")
access_token = dict(parse_qsl(content))
print "Access Token:"
print " - oauth_token = %s" % access_token['oauth_token']
print " - oauth_token_secret = %s" % access_token['oauth_token_secret']