Bei der Arbeit mit einem Zugriffsschlüssel musst du möglicherweise überprüfen, welche Informationen mit ihm verknüpft sind, beispielsweise der Nutzer oder das Ablaufdatum. Diese Informationen kannst du mit unserer Fehlerfunktion oder dem API-Endpunkt abrufen.
Wenn du die API verwenden möchtest, kann du eine Graph API-Anfrage ausgeben:
curl -i -X GET "https://graph.facebook.com/debug_token? input_token={input-token}& access_token={valid-access-token}
Ersetze {input-token}
durch den Zugriffsschlüssel, zu dem du Informationen abrufen möchtest, und {access-token}
durch einen gültigen Zugriffsschlüssel. Die Schlüssel müssen aus derselben App stammen.
Der API-Aufruf gibt ein JSON-Array ähnlich dem folgenden zurück:
{ "data":{ "app_id":"{app-id}", "type":"USER", "application":"{app-name}", "data_access_expires_at":1576687825, "expires_at":1570820400, "is_valid":true, "scopes":[ "pages_show_list", "public_profile" ], "granular_scopes":[ { "scope":"pages_show_list", "target_ids":[ "{page-1-app-can-access-id}", "{page-2-app-can-access-id}" ] } ], "user_id":"10215241773831025" } }
Für langlebige Zugriffsschlüssel wird auch das Feld issued_at
zurückgegeben.
Du erhältst von Facebook eine Benachrichtigung, dass ein Zugriffsschlüssel ungültig geworden ist. Sofern du nicht die expiry
-Zeit zusammen mit dem Zugriffsschlüssel an deine App gesendet hast, erfährt die App erst dann, dass ein bestimmter Schlüssel ungültig geworden ist, wenn du versuchst, eine Anfrage an die API zu senden.
Aufgrund sicherheitsrelevanter Events können Zugriffsschlüssel schon vor der erwarteten Ablaufzeit ungültig werden.
In den meisten Apps werden abgelaufene Zugriffsschlüssel am besten behandelt, indem die von der API ausgegebenen Fehlermeldungen aufgenommen werden. In jedem Fall gibt die API eine Fehlermeldung, einen Code und einen Untercode in einem JSON-Body zurück, der die Art des Fehlers erklärt. Weitere Informationen zu Codes und Untercodes findest du in der Referenzdokumentation zu Fehlercodes.
{ "error": { "message": "Error validating access token: Session has expired on Wednesday, 14-Feb-18 18:00:00 PST. The current time is Thursday, 15-Feb-18 13:46:35 PST.", "type": "OAuthException", "code": 190, "error_subcode": 463, "fbtrace_id": "H2il2t5bn4e" } }
Diese Antwort wird gesendet, wenn sich eine Person von deiner App abgemeldet oder ihr Passwort geändert hat.
{ "error": { "message": "Error validating access token: The session is invalid because the user logged out.", "type": "OAuthException", "code": 190, "error_subcode": 460, "fbtrace_id": "H2il2t5bn4e" } }
Die Person muss sich erneut anmelden, um einen gültigen Zugriffsschlüssel abzurufen, damit du API-Aufrufe in ihrem Namen durchführen kannst. Der Anmeldevorgang, den deine App für neue Nutzer verwendet, sollte die erforderliche Methode bestimmen.
Wenn jemand die Autorisierung für deine App widerrufen oder diese nie autorisiert hat, wird die gleiche Fehlerantwort zurückgegeben wie für einen neuen Nutzer deiner App.
{ "error": { "message": "Error validating access token: User {user-id} has not authorized application {your-app-id}.", "type": "OAuthException", "code": 190, "error_subcode": 458, "fbtrace_id": "H2il2t5bn4e" } } }
API-Fehler im iOS-SDK werden normalerweise über die NSError
-Instanzen angezeigt, die an die Rückrufe übergeben werden. Weitere Informationen findest du in der Fehlerdokumentation zum iOS-SDK.
API-Fehler im Android SDK werden normalerweise über das Response
-Objekt angezeigt, das an den Rückruf von Requests
übergeben wird. Insbesondere kannst du response.getError()
aufrufen, um eine FacebookRequestError
-Instanz abzurufen.
Unsere API-Fehlerreferenz enthält Informationen zu weiteren Fehlern, diese drei Fehler treten jedoch im Zusammenhang mit Zugriffsschlüsseln am häufigsten auf.