Share via


Facebooks Graph API 2.0-uppgradering och ACS

Uppdaterad: 17 juli 2015

Den 30 april 2015 uppgraderas alla Facebook-aktiverade program automatiskt till Facebooks Graph API v2.0. Om du använder Facebook som identitetsprovider i ett ACS-namnområde kan du behöva göra ändringar i dina Konfigurationer av Facebook-identitetsprovider i ACS, kodändringar i ditt program eller båda för att undvika driftstopp. Mer information om Facebooks planer finns i uppgraderingsguiden för Facebook-plattformen.

Bakgrund

ACS använder följande Facebook-slutpunkter: https://www.facebook.com/dialog/oauth, https://graph.facebook.com/oauth/access\_tokenhttps://www.facebook.com/logout.php och https://graph.facebook.com/me. Facebook uppgraderar automatiskt dessa "versionslösa" Graph API förfrågningar om att använda v2.0 den 30 april 2015.

När du lägger till Facebook som identitetsprovider i ACS anges "e-post" som programbehörighet (som standard). Om du inte har valt några programbehörigheter (tomt fält) eller standardinställningarna ("e-post") i konfigurationerna för Facebook-identitetsprovidern behöver du inte göra några program- eller konfigurationsändringar. Om du har valt andra programbehörigheter bör du granska det här avsnittet helt och hållet för att utvärdera påverkan och vidta lämpliga åtgärder.

Application permissions dialog

Utvärdera påverkan

Följande ändringar som gjorts av Facebook behöver du tänka på:

  • Behörigheter

    • Behörigheten "basic_info", som implicit ingår i varje Facebook-begäran, ersätts av behörigheten "public_profile", som också kommer att vara implicit. Behörighetsuppsättningarna för de två är identiska, förutom att i det senare fallet kommer listan över vänner att ingå i en separat behörighet "user_friends". För att få motsvarande funktioner till behörigheten "basic_info" måste du uttryckligen begära behörigheten "user_friends".

    • Betydande ändringar har gjorts av "vänner"-baserade behörigheter. Uppgraderingsguiden för Facebook-plattformen beskriver dem i detalj.

    • Facebook kräver att program som begär ytterligare behörigheter utöver "basic_profile", "e-post" och "user_friends" går igenom sin inloggningsgranskningsprocess .

  • Nekade behörigheter

    • Facebook tillåter användare att välja vilka behörigheter som ska beviljas till ett program, med alternativet att selektivt neka behörigheter. Programmen måste hantera dessa användningsfall.

    • Användarna kan inte neka behörigheten "public_profile".

    • Om användaren nekar behörigheten "e-post" skickar ACS inte e-postanspråket i token tillbaka till programmet.

  • Appomfattande användar-ID:t

    • Användar-ID:t som skickas i ACS-token som anspråket "Namnidentifierare" går från att vara globalt begränsade ID:er (samma användar-ID i flera Facebook-program) till appomfattande ID:t (olika användar-ID:t för varje Facebook-program).

    • Detta är endast fallet för Facebook-användare som nyligen loggat in i programmet. Den är bakåtkompatibel för användare som redan har loggat in i programmet tidigare.

    • Om programmet förlitar sig på globalt begränsade användar-ID:n för att korrelera användaren mellan olika Facebook-programregistreringar måste det göra justeringar och använda Facebooks API för affärsmappning för att göra detsamma.

Rekommendationer

Om du upptäcker att det påverkar dina Facebook-aktiverade ACS-program finns här en icke-fullständig lista över rekommendationer. Alla dessa kan inte vara tillämpliga för dig. Se uppgraderingsguiden för Facebook-plattformen för den fullständiga listan.

  • Kontrollera att du inte har några beroenden av inaktuella programbehörigheter.

  • Skicka utökade programbehörigheter för Facebooks inloggningsgranskning. Du kan också skala tillbaka programmet så att det endast använder programbehörigheterna "basic_profile", "e-post" och "user_friends".

  • Uppdatera programmets logik för att hantera nekade behörigheter.

  • Uppdatera programmets logik för att hantera appomfattande användar-ID:n om du behöver korrelera användare över flera Registreringar av Facebook-appar. Använd Facebooks API för affärsmappning för att göra detta.