Share via


Facebook 的 Graph API 2.0 升級和 ACS

更新日期:2015 年 7 月 17 日

在 2015 年 4 月 30 日,所有已啟用 Facebook 的應用程式都會自動升級至 Facebook 的 圖形 API v2.0。 如果您使用 Facebook 作為 ACS 命名空間中的識別提供者,您可能需要變更 ACS 中的 Facebook 身分識別提供者設定、變更應用程式的程式碼,或同時避免停機。如需 Facebook 方案的詳細資訊,請參閱 Facebook 平臺升級指南

背景

ACS 使用下列 Facebook 端點: https://www.facebook.com/dialog/oauthhttps://graph.facebook.com/oauth/access\_tokenhttps://www.facebook.com/logout.phphttps://graph.facebook.com/me 。 Facebook 會自動升級這些「無版本」圖形 API要求,以在 2015 年 4 月 30 日使用 v2.0。

在 ACS 中將 Facebook 新增為身分識別提供者時,‘email’ 會設為應用程式權限 (根據預設)。 如果您未在 Facebook 身分識別提供者組態中選擇任何應用程式權限 (空的欄位) 或預設值 (‘email’),您將無須進行任何應用程式或組態變更。 如果您選擇了其他應用程式權限,則應完整檢閱本主題,以評估影響並採取適當步驟。

Application permissions dialog

評估影響

您必須考量 Facebook 所做的下列變更:

  • 權限

    • 'basic_info' 權限 (每個 Facebook 要求的隱含部分) 將由 'public_profile' 權限 (也將是隱含的) 取代。 兩者的權限集完全相同,差別在於,使用後者時,好友清單將會是不同權限 'user_friends' 的一部分。 若要取得 'basic_info' 權限的對等功能,您必須明確地要求 'user_friends' 權限。

    • 以 ‘friends’ 為基礎的權限有重大變更。 Facebook 平臺升級指南會詳細說明它們。

    • Facebook 要求應用程式要求超過 「basic_profile」、「電子郵件」和「user_friends」以外的其他許可權,才能完成其 登入檢閱 程式。

  • 拒絕的權限

    • Facebook 會透過選擇性拒絕權限的選項,讓使用者選擇要為應用程式授與哪些權限。 應用程式將需要處理這些使用案例。

    • 使用者無法拒絕 'public_profile' 權限。

    • 如果使用者拒絕 'email' 權限,ACS 將不會在權杖中將 'email' 宣告傳回至應用程式。

  • 應用程式範圍的使用者識別碼

    • 在 ACS 權杖中傳送做為「名稱識別碼」宣告的使用者識別碼,將會從全域範圍的 ID (多個 Facebook 應用程式使用相同的使用者識別碼) 變成應用程式範圍的 ID (每個 Facebook 應用程式使用不同的使用者識別碼)。

    • 此情況只適用於新登入應用程式的 Facebook 使用者。 對於之前登入過應用程式的使用者,這具有回溯相容性。

    • 如果應用程式依賴全域範圍的使用者識別碼,將使用者相互關聯到不同的 Facebook 應用程式註冊,則必須進行調整,並使用 Facebook 的商務對應 API 來執行相同的動作。

建議

如果您發現啟用 Facebook 功能的 ACS 應用程式受到影響,請參閱下列非完整建議清單。 並非所有列出的事項皆適用於您。 如需完整清單,請參閱 Facebook 平臺升級指南

  • 確定您並未依存於任何已被取代的應用程式權限。

  • 提交 Facebook 登入 檢閱的延伸應用程式許可權。 或者,您可以將應用程式重新調整成僅使用 'basic_profile'、'email' 和 'user_friends' 應用程式權限。

  • 更新應用程式對於拒絕的權限進行處理的邏輯。

  • 如果您必須建立使用者在多個 Facebook 應用程式註冊間的關聯,請更新應用程式對於應用程式範圍的使用者識別碼的處理邏輯。 使用 Facebook 的 商務對應 API 來執行此動作。