2

OneDrive に同期するアプリがあります。ユーザーが GoDaddy 経由で Office365 を使用していて、'refresh_token' の grant_type を持っている場合、refresh_token が返されないため、現在持っているトークンを更新できません。追加しようとしましaccess_type="offline"prompt="consent"が、 POST リクエストを実行しても無駄になりました。ヘルプ?

これが私のコードです:

credentials = OpenStruct.new
params = {
      client_id: client_credentials[:key],
      redirect_uri: redirect_url,
      client_secret: client_credentials[:secret],
      refresh_token: refresh_token,
      grant_type: 'refresh_token',
      resource: resource_id,
      access_type: 'offline',
      prompt: 'consent'
} 
RestClient.post(client.token_url, params) # doesn't return refresh_token
4

1 に答える 1

0

リクエストに基づいて、トークンを更新していたようです。OAuth 2.0 コード許可フローに基づいて、access_typeおよびpromptに関するパラメーターはありません。サポート パラメータについては、以下を参照してください。

ここに画像の説明を入力

そして、ここにあなたの参照のための投稿があります:

POST /{tenant}/oauth2/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
&grant_type=refresh_token
&resource=https%3A%2F%2Fservice.contoso.com%2F
&client_secret=JqQX2PNo9bpM0uEihUPzyrh 
于 2016-09-12T02:46:46.560 に答える