Upgrade Guide - Upgrading from v1.0 to v2.0

Upgrade Guide - Upgrading from v1.0 to v2.0

Upgrade Guide - Upgrading from v1.0 to v2.0

Graph API升級筆記。
由於v2.0於2016/4/30到期,因此建議直接升到最新版本v2.2。

Implementing Versions in your Apps

Graph API有版本差異:

  • 部份Graph API endpoints輸出內容些許不同,例如:me?fields=friends 不再能取得所有朋友,而只有授權此App的朋友。
  • 什麼權限是可以取得的、當使用者同意授權時App可以取得什麼,是有版本差異的。例如:
    • 使用者的朋友這個權限在v1.0和更早之前的版本中是預設可取得的,但在v2.0開始獨立出來成為「user_friends」權限,必須特別要求。因此v2.0之後多出了兩個API「Taggable Friends API」和「Invitable Friends API」。
    • 移除「friend_*」相關權限。例如不再能經由 me?fields=friends{likes} 取得朋友的個人資訊(朋友的like項目)。要等到朋友也授權此App後才能取得。
      Implementing Versions in your Apps
  • Dialog的行為:Login Dialog在v2.0之後可以選擇要授權的權限。

Upgrading Web Apps

  • 更新SDK的路徑
  • 初始化的時候指定API版本

Update the path to the SDK: Change the path to the JavaScript SDK

js.src = "//connect.facebook.net/zh_TW/all.js";

js.src = "//connect.facebook.com/en_US/all.js";

而我們必須更正為

js.src = "//connect.facebook.com/en_US/sdk.js";

初始化的時候必須指定API版本

過去我們不需要在初始化時告知SDK使用的API版本,可默認,但現在必須指定。

FB.init({
  appId      : '{app-id}',
  version    : 'v2.0'
});

Login

登入時v1.0與v2.0+的不同處:

  • 授權哪些權限是可以被選擇的。因此若使用者在一開始的時候沒有授權某個權限,在後續使用此功能時也要能讓使用者重新授權(查詢使用者目前的授權狀況:/me/permissions)。

    • v1.0 使用者無法選擇授權哪些權限。 v1.0 使用者無法選擇授權哪些權限
    • v2.0 可選擇授權哪些權限。
      v2.0 可選擇授權哪些權限
    • 重新授權:Web apps must explicitly pass a new option to the Login Dialog: auth_type: rerequest.

      FB.login(
        function(response) {
          console.log(response);
        },
        {
          scope: 'user_likes',
          auth_type: 'rerequest'
        }
      );
      
  • 不再能取得所有朋友,而只有授權此App的朋友。

  • 基本資訊權限在v1.0稱為「basic_info」,V2.0之後移除朋友相關資訊的基本資訊權限稱為「public_profile」。
  • 如果要求的權限超過基本權限外,必須經過Facebook Login Review。

Permissions Changes

  • 基本資訊權限在v1.0稱為「basic_info」,V2.0之後移除朋友相關資訊的基本資訊權限稱為「public_profile」。取得朋友權限被獨立出來稱為「user_friends」,且「/me/friends」不再能取得所有朋友,而只有授權此App的朋友。
  • 權限「read_friendlists」不再允許讀取朋友,只能讀取朋友列表的名稱。
  • 加入新的權限「user_tagged_places」,並且使用「/me/tagged_places」取代「/me/locations endpoint」(取得打卡地點)。

v2.0+不再使用的權限

  • create_event
  • manage_friendlists
  • read_requests
  • user_checkins
  • user_notes
  • useronlinepresence
  • user_questions
  • user_subscriptions
  • xmpp_login
  • friendsaboutme
  • friends_actions.books
  • friends_actions.fitness
  • friends_actions.music
  • friends_actions.news
  • friends_actions.video
  • friendsactions:APPNAMESPACE
  • friends_activities
  • friends_birthday
  • friends_checkins
  • friendseducationhistory
  • friends_events
  • friendsgamesactivity
  • friends_groups
  • friends_hometown
  • friends_interests
  • friends_likes
  • friends_location
  • friends_notes
  • friendsonlinepresence
  • friends_photos
  • friends_questions
  • friends_relationships
  • friendsrelationshipdetails
  • friendsreligionpolitics
  • friends_status
  • friends_subscriptions
  • friends_videos
  • friends_website
  • friendsworkhistory

Login Review

相關可參考「Facebook Login Review筆記 Day 1 - Overview」與「Facebook Login Review筆記 Day 2 - Policies and Best Practices」。

其中要注意的是,如果A與B為朋友且皆授權此App,但B拒絕授權「user_friends」,則A也無法從「me/friends」取得朋友B。

如果有使用http request也要加上版本號

https://www.facebook.com/v2.0/dialog/oauth?
  client_id={app-id}
  &redirect_uri={redirect-uri}

FQL

v2.0 以後不再使用FQL。


Reference

推薦閱讀


留言