Wie würden Sie durchführen `debug_token` Aufruf über facebook php-sdk?
Entsprechend der Dokumentation den Endpunkt sieht aus wie
GET /debug_token?
input_token={input-token}&
access_token={access-token}
wo
input_token:
den access token, den Sie möchten, um Informationen über
access_token
: Ihre app access-token oder ein Gültiger user access token von einem Entwickler der app
Vorausgesetzt, ich habe nicht "valid user access token von einem Entwickler der app" - nur weil ich nicht wollen, um es zu aktualisieren alle 2 Monate und behalten Sie immer im Hinterkopf - wie würde ich durchführen, indem Sie "app access token"?
Den getApplicationAccessToken()
Methode geschützt ist, so gibt es keine Möglichkeit, es ohne überschreiben öffentlichkeit.
Eleganten Lösung, die mir fehlt?
PS: ein Aufruf-Beispiel, die scheitern würden, mit "Sie müssen eine app access token, oder einer user access token, das ein Besitzer oder Entwickler der app" - Fehler aufgrund von fehlenden Zugangs-token:
$tokenDebug = $fb->api('debug_token', array(
'input_token' => $token,
));
PPS: das "interessante" daran ist, dass der Fehler von oben erscheinen würden, nicht für jeden $token
aber für einige, und ich sehe keinen offensichtlichen Unterschied zwischen dem Token, das scheitern und das gelingen.
PPP: $token
ist ein user access token
PPPPS: Erstellt eine feature-Anfrage für die FB-PHP-SDK https://developers.facebook.com/bugs/637897982899835
PPPPPS: es könnte Wahrscheinlich besser sein, erstellen Sie eine pull-Anfrage statt, aber es ist 1:30 Uhr und ich bin zu müde für, dass
- Warum würden Sie wollen, um die Anwendung Debuggen, access token in den ersten Platz ...?
- Ich möchte zu debug-Benutzer-Zugriffstoken
$token
- Die Kombination
app_id|app_secret
(beide Werte verkettet mit einem pipe-symbol in der Mitte) arbeitet immer als app access token). - Ich weiß, dass 🙂 Das ist, was
getApplicationAccessToken()
eigentlich macht, aber es ist geschützt. Was ich gerne vermeiden möchte - ist eine harteapp_id|app_secret
im client-code. Und das ist, warum ich fragte über einige elegante Lösung 🙂 - Und
getApplicationAccessToken
generiert die token der gleichen Weise, und istpublic
in der aktuellen SDK-version finden Sie unter github.com/facebook/facebook-php-sdk/blob/master/src/... – keine Ahnung, was macht Sie denken, dass Sie geschützt war ...? - Es ist geschützt in der jeweils aktuellen stabilen version (die ich verwende), github.com/facebook/facebook-php-sdk/blob/v3.2.2/src/... ich schaue nicht auf die
master
zu überprüfen, so dass ich denke, es ist eine gute Antwort, könnten Sie bitte legen Sie es als eine Antwort und mein Problem gelöst wird mit der nächsten stable-Veröffentlichung - PS: es könnte wahrscheinlich eine gute Idee, auf Anfrage FB team immer Anhängen
access_token => $this->getApplicationAccessToken()
wenn der API-Endpunkt istdebug_token
so dass die Verbraucher nicht kümmern - Naja, wenn wir schon dabei sind, warum Fragen Sie Sie nicht zum erstellen einer neuen Methode
debugAccessToken($token)
? 🙂 - In meiner Lösung habe ich einfach überschrieben
getApplicationAccessToken()
da ich bereits eine Verlängerung derFacebook
Klasse. Aber ich wusste nicht wie solch ein hack. Btw, erstellen Sie eine feature-Anfrage, wird die Verknüpfung hinzufügen, um es auf die Frage in einem moment - getan, mit credits an dich 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK, also braucht man ein app access token,
app_id|app_secret
(beide Werte verkettet mit einem pipe-symbol in der Mitte) immer funktioniert.Die Methode
getApplicationAccessToken
scheint zu haben gewesen geschützt in der PHP-SDK bis zu 3.2.2 – in der Erwägung, dassgetAppId
undgetAppSecret
sind bereits der öffentlichkeit in dieser version, so dass diese könnte die alternative zu hard-coding-id und geheim statt.Die PHP-SDK hat die
getOAuth2Client()
client-Methode, gibt eine\Facebook\Authentication\OAuth2Client
Instanz.Dieser hat die
debugToken($accessToken)
Methode, gibt eine\Facebook\Authentication\AccessTokenMetadata
- Instanz enthält Daten über das access-token.