Langlebige Zugriffstokens nach der Abschaffung von Offline_access
Die Abschaffung der Offline_access-Berechtigung durch Facebook hat den Erwerb langlebiger Zugriffstokens behindert. Obwohl in der Dokumentation behauptet wird, dass serverseitige OAuth-Tokens erweitert werden sollen, sieht die Realität anders aus.
Lösung
Um ein langlebiges Zugriffstoken zu erhalten, verwenden Sie die Funktion „extendedAccessToken ()“. Methode:
öffentliche Funktion getExtendedAccessToken(){
try { // need to circumvent json_decode by calling _oauthRequest // directly, since response isn't JSON format. $access_token_response = $this->_oauthRequest( $this->getUrl('graph', '/oauth/access_token'), array( 'client_id' => $this->getAppId(), 'client_secret' => $this->getAppSecret(), 'grant_type'=>'fb_exchange_token', 'fb_exchange_token'=>$this->getAccessToken() ) ); } catch (FacebookApiException $e) { // most likely that user very recently revoked authorization. // In any event, we don't have an access token, so say so. return false; } if (empty($access_token_response)) { return false; } $response_params = array(); parse_str($access_token_response, $response_params); if (!isset($response_params['access_token'])) { return false; } return $response_params['access_token'];
}
Denken Sie daran, „deprecate offline_access“ in den erweiterten Einstellungen der Entwickler-App zu aktivieren, um die Funktionalität sicherzustellen. Rufen Sie diese Methode auf, nachdem Sie das reguläre Zugriffstoken erhalten haben, um ein gültiges Token mit einer Ablauffrist von 60 Tagen zu erhalten.
Das obige ist der detaillierte Inhalt vonWie kann ich nach der Einstellung von Offline_access langlebige Facebook-Zugriffstoken erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!