OAuthWebサイトのrauthで言及されているpythonlibは、シンプルで使用するのに最適なもののようです。だから、Djangoで使いたいのですが、実際には実装できません。
これが私の問題です。
# I do something like this initially
from rauth.service import OAuth2Service
from django.shortcuts import render_to_response
def page(request):
service = OAuth2Service(
consumer_key = "..",
consumer_secret = "...",
.. )
url = service.get_authorize_url(redirect_uri="http://mysite.com/redired-url")
# this url is where the user accepts or not.
# which redirects with authorization code.
return HttpResponseRedirect(url)
これで、ユーザーがページを開くと、直接リダイレクトされ、ユーザーに許可または拒否を求められます。ユーザーが許可した場合、redirect-urlで認証コードを取得します。
認証トークンからアクセストークンを取得するには、
rauth libはそうするように言及しており、redirect-urlに対応する別のビューの下に置く必要があります
data = dict(code='foobar',
grant_type='authorization_code',
redirect_uri='http://example.com/')
token = service.get_access_token('POST', data=data)
問題はservice
オブジェクトにあります。あるビューでインスタンスを作成service
しました。アクセストークンを取得するには、別のビューでインスタンスを使用する必要があります。
どこが間違っているのか..?それを成し遂げる方法。