2

で再認証を検討し、私はモバイルアプリからGoogleの認証コードを受信し、次のようにトークンとリフレッシュトークンにアクセスするために交換するのpython oauth2clientを使用します。oauth2client.client - refresh_tokenを使用しないでトークン応答を受信しました。プロンプト=「同意」

credentials = client.credentials_from_clientsecrets_and_code(
         app.config.get('GG_APP_SECRET'), 
         ['profile'], 
         authCodeFromMobileApp, 
         redirect_uri='http://example.com') 

その後、私が受け取っ:

をrefresh_tokenのないトークンレスポンスを受信しました。 prompt = 'consent'で を再認証することを検討してください。 thisに基づいて

それは私が設定していることを言った:access_type=offlineをしかし、私はoauth2clientでこれを設定する場所/方法が本当にわからないんだけど?

これまで誰もこの問題を解決していませんか?

追加:

flow = client.flow_from_clientsecrets(app.config.get('GG_APP_SECRET'), 
             ['profile'], 
             message=None, 
             cache=None, 
             redirect_uri='http://example.com', 
             device_uri=None) 
flow.params['access_type'] = 'offline' 
credentials = flow.step2_exchange(req_gg_code, http=None) 

しかし、まだ同じ予期しない結果を持つ...

答えて

0

flow_from_clientsecretsメソッドは、パラメータを渡すことができますプロンプトと呼ばれています:

私も下に試してみました値「同意」

flow = client.flow_from_clientsecrets(
      app.config.get('GG_APP_SECRET'), 
      ['profile'], 
      message=None, 
      cache=None, 
      redirect_uri='http://example.com', 
      device_uri=None, 
      prompt='consent' 
) 

ユーザーは毎回同意することを了承しますので、毎回refresh_tokenと表示されます。

関連する問題