Maison >développement back-end >tutoriel php >Comment puis-je obtenir des jetons d'accès Facebook de longue durée après la dépréciation de Offline_access ?

Comment puis-je obtenir des jetons d'accès Facebook de longue durée après la dépréciation de Offline_access ?

DDD
DDDoriginal
2024-12-01 17:11:14427parcourir

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

Jetons d'accès de longue durée après la dépréciation de l'accès hors ligne

La dépréciation par Facebook de l'autorisation d'accès hors ligne a entravé l'acquisition de jetons d'accès de longue durée. Malgré la documentation affirmant que les jetons OAuth côté serveur doivent être étendus, la réalité est différente.

Solution

Pour obtenir un jeton d'accès de longue durée, utilisez extendAccessToken () méthode :

fonction publique 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'];

}

N'oubliez pas d'activer "deprecate offline_access" dans les paramètres avancés de l'application Developer pour garantir la fonctionnalité. Appelez cette méthode après avoir reçu le jeton d'accès régulier pour obtenir un jeton valide avec une période d'expiration de 60 jours.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn