我正在尝试在我的 Django 应用程序中对 Rdio API 进行授权调用。到目前为止,我一直在查看以下教程以进行设置:
http://www.rdio.com/developers/docs/web-service/oauth/ref-oauth1-overview
页面底部的代码对我来说很好用:我可以获取请求令牌,使用 PIN 授权用户,然后使用新的访问令牌进行呼叫。
但是,我想实现回调,以便用户可以登录并返回我的站点,以便我可以使用他们的帐户发出授权请求。我目前有一个带有授权应用程序链接的页面,其中获取链接的功能如下:
def get_auth_url():
client = oauth.Client(consumer)
response, content = client.request('http://api.rdio.com/oauth/request_token', 'POST', urllib.urlencode({'oauth_callback': 'http://localhost:8080/my_page/'}))
parsed_content = dict(cgi.parse_qsl(content))
request_token = oauth.Token(parsed_content['oauth_token'], parsed_content['oauth_token_secret'])
sURL = '%s?oauth_token=%s' % (parsed_content['login_url'], parsed_content['oauth_token'])
return sURL
没关系,当我单击此链接时,我会转到一个页面,要求为此应用程序授权我的帐户。但是,然后我需要从我的用户刚刚授权的请求令牌中获取访问令牌。来自授权页面的回调给了我oauth_verifier
和oauth_token
参数,但构造请求令牌需要oauth_token
和oauth_token_secret
。我在第一次通话中获得了秘密,但在第二次通话中无法再次获得,并且教程说我不应该将秘密存储在任何可访问的地方或跨请求传输它。由于这是两个不同的请求,我想不出在哪里存储持久请求令牌。如何获得oauth_token_secret
第二个请求以便获得访问令牌?