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!