4

「コード」とトークンの交換に成功した場合

Facebook の応答は次のとおりです (html 本文)

 access_token=USER_ACCESS_TOKEN&expires=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES

しかし、このトークン交換用のコードが失敗するとどうなるでしょうか? 交換が失敗した場合、Facebook はどのように応答しますか?

参照 https://developers.facebook.com/docs/howtos/login/server-side-login/

4

1 に答える 1

15

リクエストのパラメーターの 1 つが正しくない場合、facebook はアプリケーションにアクセス トークンを返すことができない場合があります。私のoauthフレームワークの開発中に、必要な各パラメーターを誤った値に設定してテストしました(つまり123abc、正しい値の先頭に文字列を追加しました)。結果は次のとおりです。

Facebook からアクセス トークンを要求するときにクライアント ID が間違っていると、json エラーが返されます。

{
   "error": {
      "message": "Error validating application. Invalid application ID.",
      "type": "OAuthException",
      "code": 101
   }
}

Facebook からアクセス トークンを要求するときにクライアント シークレットが間違っていると、json エラーが返されます。

{
   "error": {
      "message": "Error validating client secret.",
      "type": "OAuthException",
      "code": 1
   }
}

Facebook からアクセス トークンを要求するときに間違ったコードが返され、json エラーが返されます。

{
   "error": {
      "message": "Invalid verification code format.",
      "type": "OAuthException",
      "code": 100
   }
}

Facebook からアクセス トークンを要求するときに間違った許可タイプが返され、json エラーが返されます。

{
   "error": {
      "message": "Invalid grant_type: '123abcauthorization_code'. Supported types: authorization_code, client_credentials",
      "type": "OAuthException",
      "code": 100
   }
}

Facebook からアクセス トークンを要求するときにスコープが間違っていると、json エラーが返されます。

{
   "error": {
      "message": "Unsupported scope: '123abcemail'. Supported scopes: ads_management create_event create_note email export_stream friends_about_me friends_activities friends_birthday friends_checkins friends_education_history friends_events friends_games_activity friends_groups friends_hometown friends_interests friends_likes friends_location friends_notes friends_online_presence friends_photo_video_tags friends_photos friends_questions friends_relationship_details friends_relationships friends_religion_politics friends_status friends_subscriptions friends_videos friends_website friends_work_history manage_friendlists manage_notifications manage_pages offline_access photo_upload publish_actions publish_checkins publish_stream read_friendlists read_insights read_mailbox read_page_mailboxes read_requests read_stream rsvp_event share_item sms status_update user_about_me user_activities user_birthday user_checkins user_education_history user_events user_games_activity user_groups user_hometown user_interests user_likes user_location user_notes user_online_presence user_photo_video_tags user_photos user_questions user_relationship_details user_relationships user_religion_politics user_status user_subscriptions user_videos user_website user_work_history video_upload xmpp_login",
      "type": "OAuthException",
      "code": 100
   }
}

もちろん、値に追加しない場合123abc、アクセストークンはそれぞれの場合に正しく返されます。

これらの回答は 2012 年 12 月現在のものですが、もちろん facebook は将来の任意の時点で警告なしに変更することを決定する可能性があります。

于 2013-01-31T00:11:36.520 に答える