Heim >Backend-Entwicklung >PHP-Tutorial >Wie erhalte ich langlebige Facebook-Zugriffstoken nach der Einstellung von Offline_access?

Wie erhalte ich langlebige Facebook-Zugriffstoken nach der Einstellung von Offline_access?

Linda Hamilton
Linda HamiltonOriginal
2024-11-29 07:02:14490Durchsuche

How to Obtain Long-Lived Facebook Access Tokens After Offline_access Deprecation?

So verlängern Sie die Gültigkeit des Zugriffstokens trotz der Einstellung von Offline_access

Problem:

Facebooks Einstellung von Die Offline_Access-Berechtigung hat unsere Fähigkeit, langlebige Zugriffstoken zu erwerben, behindert. Obwohl aus der Dokumentation hervorgeht, dass serverseitige OAuth-Tokens eine lange Lebensdauer behalten würden, ist dies nicht der Fall.

Antwort:

Bearbeiten (14. August 2012 ):

Das offizielle Facebook PHP SDK wurde aktualisiert und führt die überarbeitete Version ein setExtendedAccessToken-Funktion. Um potenzielle Bedenken hinsichtlich der Sitzungsduplizierung auszuräumen, ist es erforderlich, die aktuelle Sitzung bei Funktionsausführung zu beenden. Darüber hinaus speichert es das neue Zugriffstoken intern und ermöglicht so den Abruf über die öffentliche getAccessToken-Funktion. Erwerben Sie das neueste SDK von der Facebook PHP SDK GitHub-Seite.

Ursprüngliche Antwort:

base_facebook.php wurde eine neuartige öffentliche Funktion hinzugefügt, die Zugriff auf eine 60 -Tages-Token für erneuerbaren Zugriff. Die Implementierung dieser Funktion nach dem normalen Empfang des Zugriffstokens kann ausreichen. Darüber hinaus wird davon ausgegangen, dass die Aktivierung von „deprecate offline_access“ in den erweiterten Einstellungen der Entwickler-App erforderlich ist.

Fügen Sie den folgenden Code in Ihre base_facebook.php innerhalb der Facebook-Klasse ein und rufen Sie die Funktion auf:

public function 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'];
}

Das obige ist der detaillierte Inhalt vonWie erhalte ich langlebige Facebook-Zugriffstoken nach der Einstellung von Offline_access?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn