Publication croisée sur une page Facebook à l'aide du SDK PHP

De nombreux sites publient des informations sur les nouveaux matériaux sur les réseaux sociaux, cela peut être fait pour Facebook. Il est supposé que vous avez déjà créé l' application et spécifié les hôtes autorisés pour la redirection OAuth dans l'onglet "Avancé" de l'élément de menu "Paramètres". Ainsi, nous démarrons la session avec la fonction session_start (), celui qui en a besoin peut activer la sortie d'erreur si elle est désactivée.

error_reporting(E_ALL); ini_set("display_errors", 1); 

Ensuite, téléchargez la bibliothèque PHP SDK (qui se trouve sur github) et extrayez le dossier src (qui peut être renommé). Spécifiez ensuite le chemin d'accès au chargeur automatique.

 require_once __DIR__ . '/_src/autoload.php'; 

Créez maintenant une instance de la classe Facebook.

 $fb = new Facebook\Facebook([ 'app_id' => '1234567890123456', //   id  'app_secret' => '12345678901234567890123456789012' //   ]); 

Nous appelons l'assistant pour effectuer l'autorisation, spécifions les autorisations requises pour publier sur la page.

 $helper = $fb->getRedirectLoginHelper(); //  publish_actions,     ,      $permissions = ['manage_pages','publish_pages']; $loginUrl = $helper->getLoginUrl('url____', $permissions); echo '<a href="' . htmlspecialchars($loginUrl) . '"></a>'; 

Après avoir été redirigé vers le site Facebook, où vous devrez vous connecter, vous suivrez le lien spécifié dans la fonction getLoginUrl (). Ici, encore une fois, vous appelez l'assistant auprès duquel vous obtenez l'utilisateur access_token.

 $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph  : ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK  : ' . $e->getMessage(); exit; } if (isset($accessToken)) $_SESSION['facebook_access_token'] = (string) $accessToken; elseif ($helper->getError()) exit; 

Si vous essayez de publier sur la page avec ce jeton, l'erreur «Erreur d'autorisation» sera renvoyée, car cela nécessite un jeton de page. Pour l'obtenir, vous devez appeler la fonction get () de l'objet Facebook et lui passer deux paramètres: l'url de la demande de jeton de page, qui contient l'id de la page que vous souhaitez publier et l'utilisateur access_token précédemment reçu.

 try { $response = $fb->get('/id_?fields=access_token', $_SESSION['facebook_access_token']); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph  : ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK  : ' . $e->getMessage(); exit; } //  echo $response->getGraphNode()['access_token']; 

Le jeton reçu aura une durée illimitée. Les informations sur les jetons sont disponibles via le débogueur . Vous pouvez maintenant essayer de publier un message.

 $str_page = '/1234567890123456/feed'; $feed = array('message' => ''); try { $response = $fb->post($str_page, $feed, 'access_token_'); } catch (Facebook\Exceptions\FacebookResponseException $e) { echo 'Graph  : ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { echo 'Facebook SDK  : ' . $e->getMessage(); exit; } $graphNode = $response->getGraphNode(); echo ', id: ' . $graphNode['id']; 

Si nécessaire, vous pouvez quitter Facebook.

 $helper = $fb->getRedirectLoginHelper(); $logoutUrl = $helper->getLogoutUrl($_SESSION['facebook_access_token'], 'url____'); echo '<a href="' . htmlspecialchars($logoutUrl) . '"></a>'; 

Source: https://habr.com/ru/post/fr481482/


All Articles