Facebook用于令牌的交换代码

时间:2013-01-29 04:05:22

标签: facebook facebook-graph-api oauth oauth-2.0 facebook-c#-sdk

成功交换令牌的“代码”

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/

1 个答案:

答案 0 :(得分:15)

只要请求中的某个参数不正确,

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可能会在未经任何警告的情况下决定在未来的任何时候更改它们。