0

get_authorize_urlFacebook へのリクエストを実行すると、次のようにリダイレクトされますURL(ブラウザに表示されます)。

http://127.0.0.1:5000/#access_token=sdfsdfasfaf&expires_in=5849

しかし、私は でこの access_token を取得できませんflask: ではありませんrequest.args、 ではありrequest.query_stringませんrequest.url。多分フラスコは#キャラクターに問題がありますか?そのクエリ パラメータにアクセスするにはどうすればよいですか?

rauth これは私のコードの関連部分です ( facebook-cli exampleから派生):

# rauth OAuth 2.0 service wrapper
graph_url = 'https://graph.facebook.com/'
facebook = OAuth2Service(name='facebook',
                         authorize_url='https://www.facebook.com/dialog/oauth',
                         access_token_url=graph_url + 'oauth/access_token',
                         client_id=app.config['FB_CLIENT_ID'],
                         client_secret=app.config['FB_CLIENT_SECRET'],
                         base_url=graph_url)

...

@app.route('/facebook/login')
def login():
    redirect_uri = url_for('authorized', _external=True)
    params = {'scope': 'read_stream',
              'response_type': 'token',
              'redirect_uri': redirect_uri}
    return redirect(facebook.get_authorize_url(**params))

@app.route('/facebook/authorized')
def authorized():
    # I am not able to find the access_token
    print dir(request)
    print request.args
    print request.query_string
    print request.url

    ...
4

2 に答える 2

1

Facebook Flaskの例に従ってコード応答を使用する場合、JavaScript は必要ありません。実際、一般的に、これは OAuth コンシューマの要件ではありません。

于 2013-04-19T13:11:49.580 に答える
0

'#' でマークされた URI の部分は、フラグメント識別子と呼ばれます。サーバーには送信されず、JS などのクライアント側でのみ処理できます。

于 2013-04-19T11:56:37.127 に答える