Anfordern und Widerrufen von Berechtigungen

Abhängig von deiner Plattform und deiner Integration von Facebook Login verfügt jeder Login-Vorgang über eine eigene Methode, um Berechtigungen anzufragen:

Web

Mobile Apps

  • Für den Android-Login können zahlreiche verschiedene Klassen zum Anfragen und Verwalten von Berechtigungen verwendet werden. Weitere Informationen findest du in unserem Login-Tutorial für Android.
  • Für den iOS-Login können zahlreiche verschiedene Methoden zum Anfragen von Berechtigungen verwendet werden. Weitere Informationen findest du in unserem Login-Tutorial für iOS.
  • Für Windows Phone wird der scope-Parameter beim Starten der URI-Verknüpfung verwendet.

Beachte, dass viele der oben genannten APIs auch verwendet werden können, um zusätzliche Berechtigungen zu einem späteren Zeitpunkt in der App-Laufzeit anzufragen, nicht nur bei der ersten Anmeldung.

Optimieren von Berechtigungsanfragen

Allgemein gilt: Je mehr Berechtigungen deine App anfragt, desto geringer ist die Wahrscheinlichkeit, dass sich Personen mit Facebook bei deiner App anmelden. Unseren Untersuchungen zufolge ist bei Apps, die mehr als vier Berechtigungen anfragen, sogar ein deutlicher Abfall bei der Anzahl abgeschlossener Anmeldungen zu beobachten.

Richtlinien

Nachfolgend einige Richtlinien zum Anfragen von Berechtigungen sowohl während als auch nach der Anmeldung:

  • Frage nur nach den Berechtigungen, die für eine App unbedingt benötigt werden.

  • Frage nach Berechtigungen in dem Kontext, in dem sie erforderlich sind. Beispiel: Wenn deine App interessante Orte in der Nähe des Standorts einer Person zeigen möchte und user_location unmittelbar vor dem Anzeigen dieser Informationen angefragt wird, kann die jeweilige Person den Grund für die Anfrage dieser Berechtigung besser verstehen.

  • Trenne Anfragen zu Lese- und Veröffentlichungsberechtigungen. Weitere Informationen hierzu findest du weiter unten.

  • Bitte nie um Berechtigungen, von denen du nur glaubst, dass du sie möglicherweise in Zukunft benötigst. Die Menschen werden misstrauisch reagieren und deine App möglicherweise ablehnen.

  • Teile den Menschen vorher mit, weshalb du eine Berechtigung anfragst. Wenn du erklärst, warum du den Zugriff auf bestimmte Informationen benötigst, erhöht sich die Wahrscheinlichkeit, dass sie diese auch teilen.


Veröffentlichungsberechtigungen

Apps sollten Anfragen zu Lese- und Veröffentlichungsberechtigungen trennen. Plane deine App so, dass bei der ersten Anmeldung nur das absolute Minimum an Leseberechtigungen angefragt wird. Sämtliche Veröffentlichungsberechtigungen sollten erst dann angefragt werden, wenn eine Person sie auch tatsächlich benötigt, z.  B., wenn sie eine Open Graph-Meldung über die App erstellen möchte. Dies gewährleistet die beste Nutzererfahrung und optimiert die Conversion.

Möglicherweise erhältst du Entwickler-Benachrichtigungen, wenn deine App Lese- und Veröffentlichungsberechtigungen nacheinander anfragt. Wenn du diese Benachrichtigungen nicht mehr erhalten möchtest, trenne deine Anfragen oder befolge die nachstehenden Richtlinien für Ausnahmefälle.

In dem seltenen Fall, in dem deine App Veröffentlichungsberechtigungen im Voraus benötigt (wenn eine App beispielsweise ausschließlich die Stimmungen von Personen auf Facebook veröffentlicht), frage bei der ersten Anmeldung das absolute Minimum an Leseberechtigungen an. Nachdem sich die Person anmeldet, zeige ihr einen Bildschirm, in dem ihr erklärt wird, weshalb deine App Veröffentlichungsberechtigungen benötigt. Die Person kann der Veröffentlichungsberechtigung dann durch Klicken auf einen Button zustimmen. Dadurch erhalten sie mehr Kontext und deine Conversion wird verbessert.

Ein Fall, in dem du möglicherweise nacheinander Lese- und Schreibberechtigungen anfragen musst, liegt vor, wenn du ein E-Mail-basiertes Account zum ersten Mal mit dem Facebook-Account einer Person verknüpfst. Dies geschieht normalerweise dann, wenn jemand eine Meldung in seiner Facebook-Chronik teilen möchte. Wenn deine App den Login-Dialog erstellt, sieht die Person zwei Dialogfelder nacheinander – mit dem einen wird ihr Account mit deiner App verbunden und mit dem anderen nach Veröffentlichungsberechtigungen gefragt. Stelle in diesem Fall sicher, dass nur die Leseberechtigung public_profile angefragt wird. Dies gewährleistet die beste Nutzererfahrung, denn Personen möchten über deine App Inhalte veröffentlichen und sind häufig nicht daran interessiert, zusätzliche Leseberechtigungen zu gewähren. Auf diese Weise verbessert sich zudem deine Conversion.

Überprüfen aktueller Berechtigungen

Bei Facebook behalten Personen die volle Kontrolle über die Berechtigungen, die sie einer App gewähren. Diese Kontrolle reicht über den Punkt hinaus, an dem sie den Login-Dialog sehen. So können sie während des Login-Vorgangs entscheiden, bestimmte Berechtigungen nicht zu gewähren. Zudem können sie Berechtigungen in ihren Privatsphäre-Einstellungen auf Facebook jederzeit widerrufen. Apps sollten die Gültigkeit von Berechtigungen überprüfen, bevor sie einen API-Aufruf starten, für den sie benötigt werden. So ist z. B. das Prüfen dieser email nach wie vor möglich, bevor eine Nachricht gesendet wird.

Für Web-Apps stellen wir einen Graph API-Endpunkt zur Verfügung, um eine Liste mit erteilten Berechtigungen abzurufen:

GET /{user-id}/permissions

Der Aufruf muss entweder mit einem Zugriffsschlüssel für Nutzer oder mit dem Zugriffsschlüssel deiner App durchgeführt werden. Der Aufruf gibt dann einen JSON-String zurück, der die Bezeichnungen der Berechtigungen enthält, die der App erteilt wurden, sowie deren Status:

{
  "data": [
    {
      "permission": "public_profile",
      "status": "granted"
    },
    {
      "permission": "email",
      "status": "granted"
    },
    {
      "permission": "user_friends",
      "status": "declined"
    }
  ]
}

Zudem bieten wir in den iOS- und Android-SDKs Methoden, die für die jeweilige Plattform geeignete Repräsentationen der Berechtigungen, die deiner App gewährt wurden, zur Verfügung stellen.

Verhalten bei fehlenden Berechtigungen

Wenn eine App Berechtigungen anfragt, können Personen diese vollständig ablehnen, nicht vollständig gewähren oder sie später ändern. Um für eine herausragende Erfahrung zu sorgen, sollten Apps so entwickelt werden, dass sie mit diesen Situationen umgehen können.

Zunächst sollten Apps in der Lage sein, sämtliche Berechtigungen, die angefragt, aber nicht gewährt wurden, zu verarbeiten:

  • Prüfe erteilte Berechtigungen, bevor du APIs verwendest, die diese benötigen.
  • Ermittle Berechtigungsfehler, die zurückgegeben werden, wenn eine API-Anfrage ohne ordnungsgemäße Berechtigung durchgeführt wurde. Beispiel für einen Fehler:
{
  "error": {
    "message": "(#200) The user hasn't authorized the application
     to perform this action",
    "type": "OAuthException",
    "code": 200
  }
}

Sobald eine App festgestellt hat, dass eine Person einige oder alle Berechtigungen abgelehnt hat, kann sie die Person einmal zurück durch den Login-Vorgang leiten und alle erforderlichen Berechtigungen anfragen. Diese Vorgehensweise ist jedoch nicht optimal und sollte möglichst vermieden werden. Wenn eine Person aktiv festlegt, einer App eine bestimmte Berechtigung nicht zu erteilen, ist die Wahrscheinlichkeit gering, dass sie ihre Meinung noch einmal ändert, auch wenn sie regelmäßig dazu aufgerufen wird. Gehe stattdessen wie folgt vor:

  • Wenn eine Person den Login-Dialog ablehnt, erkläre genau und ganz direkt, weshalb du die jeweilige Berechtigung anfragst. Gib der Person dann die Möglichkeit, zum Dialogfeld mit der Berechtigungsanfrage durch Klicken oder Tippen zurückzukehren. Leite sie nicht sofort zum Dialogfeld mit der Berechtigungsanfrage weiter, ohne eine Erklärung abzugeben.

  • Wenn eine Person eine Berechtigung für deine App abgelehnt hat, kann deine App über den Login-Dialog nicht erneut die Berechtigung anfragen, außer, du leitest gemeinsam mit deiner Anfrage auth_type=rerequest weiter.

  • In den Fällen, in denen eine Person nur einige Berechtigungen erteilt hat, fordere nur die fehlenden Berechtigungen an, und zwar erst dann, wenn sie benötigt werden. Wenn deine App z. B. Bestellbestätigungen an die E-Mail der Nutzer sendet, fordere nur email an, wenn sie eine Bestellung aufgeben.

  • Sofern die Berechtigungen, die du im Login-Dialog anfragst, für die Funktionsweise deiner App nicht entscheidend sind oder nicht der Fall eintritt, dass eine Funktion ohne sie nicht funktioniert, lass die Menschen deine App ohne die jeweiligen Berechtigungen verwenden.

Möglicherweise erhältst du Entwickler-Benachrichtigungen, wenn deine App Personen wiederholt zu Berechtigungsdialogfeldern weiterleitet, nachdem sie Berechtigungen abgelehnt haben. Wenn du diese Benachrichtigungen nicht mehr erhalten möchtest, beachte diese Richtlinien.

Widerrufen von Berechtigungen

Apps bieten die Möglichkeit, Berechtigungen, die zuvor erteilt wurden, zu widerrufen. Beispielsweise könnte deine App über eine Einstellungsseite verfügen, über die Personen das Senden von E-Mail-Nachrichten deaktivieren können. Auf dieser Einstellungsseite könnte auch gleichzeitig die Möglichkeit geboten werden, die email-Berechtigung zu widerrufen.

Du kannst eine bestimmte Berechtigung widerrufen, indem du einen Aufruf des Graph API-Endpunktes startest:

DELETE /{user-id}/permissions/{permission-name}

Diese Anfrage muss mit einem Zugriffsschlüssel für Nutzer oder einem Zugriffsschlüssel für die aktuelle App durchgeführt werden. Wenn die Anfrage erfolgreich ist, erhältst du die Antwort true.


Widerrufen der Anmeldung

Du kannst Personen auch die Möglichkeit bieten, die Autorisierung einer App vollständig zurückzunehmen bzw. die Anmeldung zu widerrufen, indem du einen Aufruf zu diesem Graph API-Endpunkt startest:

DELETE /{user-id}/permissions

Diese Anfrage muss mit einem gültigen Zugriffsschlüssel für Nutzer oder einem Zugriffsschlüssel für die aktuelle App durchgeführt werden. Wenn die Anfrage erfolgreich ist, erhält deine App die Antwort true. Wenn der Aufruf erfolgreich ist, verliert der Nutzerzugriffsschlüssel der Person seine Gültigkeit und sie muss sich erneut anmelden. Da die Autorisierung deiner App zurückgenommen wurde, muss sie deiner App auch Zugriff gewähren, und zwar so, als würde sie sich zum ersten Mal anmelden.

Plattform-Leitfäden

AndroidiOSWeb