OAUTH2 - Fitbit使用requests_oauthlib

时间:2015-06-07 03:46:34

标签: python django

上下文

  

我正在编写一个访问Fitbit数据的python / django应用程序。

问题

  

要访问用户数据,我必须获取可以重复使用的令牌来访问健身数据。以下是目前的步骤。

1。首先,我向用户显示一个链接:

def register_2(request):
    if request.user.is_authenticated():

        oauth = OAuth2Session(
                auth_2_client_id,
                redirect_uri    = redirect_uri,
                scope           = fitbit_scope)

        authorization_url, state = oauth.authorization_url(fitbit_url_authorise_2)

        return render_to_response('register.html',{
                "authorization_url" : authorization_url
            },context_instance=RequestContext(request))
    return HttpResponseRedirect("/")

2。用户访问Fitbit,登录其帐户并授权访问。

第3。然后,用户将返回我的网站,其代码应允许我获取令牌。

def callback_2(request):
    if request.user.is_authenticated():
        code = request.GET.get('code')
        state = request.GET.get('state')

        oauth = OAuth2Session(
                client_id               = auth_2_client_id,
                redirect_uri            = redirect_uri
                )

        token = oauth.fetch_token(
                code                    = code,
                token_url               = fitbit_url_access_2,
                authorization_response  = request.build_absolute_uri()
                )

调用callback_2后,我收到错误消息:

(missing_token) Missing access token parameter.

资源

Fitbit OAUTH2 API

OAuth2Session Docs

1 个答案:

答案 0 :(得分:3)

  

找到解决这个问题的方法。经过研究的全部努力,相当简单。以下是使用init()requests.post()的自定义方法。

base64.b64encode()