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
これで問題ありません。このリンクをクリックすると、このアプリケーションのアカウントを承認するよう求めるページに移動します。ただし、ユーザーが承認したばかりのリクエスト トークンからアクセス トークンを取得する必要があります。承認ページからのコールバックは meoauth_verifier
とoauth_token
引数を提供しますが、リクエスト トークンの作成にはoauth_token
andが必要oauth_token_secret
です。私は最初の呼び出しで秘密を持っていましたが、この 2 番目の呼び出しでそれを再び取得することはできません。チュートリアルでは、秘密をアクセス可能な場所に保存したり、リクエスト間で転送したりしないでくださいと述べています。これらは 2 つの異なる要求であるため、永続的な要求トークンをどこに格納するかは考えられません。oauth_token_secret
アクセストークンを取得できるように、この 2 番目のリクエストでを取得するにはどうすればよいですか?