Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich die Gültigkeit des Facebook-Zugriffstokens nach der Einstellung von Offline_Access verlängern?

Wie kann ich die Gültigkeit des Facebook-Zugriffstokens nach der Einstellung von Offline_Access verlängern?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-26 06:33:10809Durchsuche

How Can I Extend Facebook Access Token Validity After Offline_Access Deprecation?

Verlängerung der Gültigkeit des Zugriffstokens nach Offline_Access-Abwertung

Problem:

Mit der Abschaffung der offline_access-Berechtigung im Facebook-Authentifizierungsablauf , ist das Abrufen langlebiger Zugriffstoken ohne diese Erlaubnis zu einer Herausforderung geworden. Obwohl in der Dokumentation von Facebook angegeben wird, dass serverseitige OAuth-Tokens langlebig sein werden, ist dies nicht der Fall.

Lösung:

Facebook hat das PHP SDK aktualisiert, um eine Methode einzubinden zur Verlängerung der Gültigkeit des Zugriffstokens.

Aktualisiertes SDK Methode:

Eine öffentliche Funktion namens setExtendedAccessToken wurde zu base_facebook.php hinzugefügt. Diese Funktion gibt ein neues Zugriffstoken mit einem Ablauf von 60 Tagen zurück.

Verwendung:

Rufen Sie diese Funktion auf, nachdem Sie das normale Zugriffstoken erhalten haben. Sie können über die öffentliche Funktion getAccessToken auf das neue Token zugreifen.

Erweiterte Zugriffstoken-Funktion:

public function getExtendedAccessToken(){

    try {
        $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) {
        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'];
}

Hinweis:

  • Stellen Sie sicher, dass Sie in Ihrer erweiterten App „Offline-Zugriff verwerfen“ aktiviert haben Einstellungen.
  • Rufen Sie setExtendedAccessToken auf, um das erweiterte Token zu erhalten.
  • Greifen Sie mit getAccessToken auf das erweiterte Token zu.

Das obige ist der detaillierte Inhalt vonWie kann ich die Gültigkeit des Facebook-Zugriffstokens nach der Einstellung von Offline_Access verlängern?. 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