web-dev-qa-db-fra.com

Exemple simple pour publier sur une page de fans Facebook via PHP?

J'ai fait beaucoup de recherches et j'ai trouvé des tutoriels obsolètes qui ne fonctionnent pas ...

J'ai un site créé avec PHP et lorsque je soumets un formulaire particulier dans mon espace administrateur, je souhaite publier sur ma "page de fan" sur Facebook.

Il n'y a pas de flux RSS disponible. Vous avez donc un exemple à publier directement sur la page de fans de Facebook (pas sur le mur de l'utilisateur) en utilisant php sdk?

Je vous remercie!

41
nmarti

Enfin, après de nombreux tests, cela a fonctionné sans le SDK PHP. Voici le guide étape par étape:

1. Obtenir les autorisations et le jeton de page

Accédez à https://developers.facebook.com/tools/Explorer/ et sélectionnez votre application dans le premier menu déroulant, à gauche.

Cliquez sur le bouton "Obtenir un jeton d'accès" et, dans la fenêtre "Sélectionner les autorisations", cliquez sur "Autorisations étendues" et cochez manage_pages et Publier_stream, puis cliquez sur le bouton bleu "Obtenir un jeton d'accès".

Dans cette étape, vous pouvez être amené à accorder des autorisations à votre application pour accéder à votre compte Facebook, acceptez-le.

Ensuite, cliquez à la fin du champ de texte à côté du menu déroulant "GET", remplacez les numéros pour: me/accounts et cliquez sur le bouton bleu à côté de ce champ de texte.

Vous obtiendrez les jetons pour toutes vos pages, y compris votre page d'application. Recherchez le nom de votre page dans la liste. Il ressemblera à ceci: "nom": "Votre nom de page"

Lorsque vous avez localisé votre page, copiez le jeton d'accès à la page (ce qui sera très long), cela peut ressembler à ceci: "access_token": "XXXXXXXX" Copiez également l'identifiant de la page: "id": "XXXXX".

C'est tout pour cette étape, nous pouvons commencer à coder maintenant.

2. Publiez vos messages sur le mur de pages via PHP

Premièrement, pour ce script, vous aurez besoin d’un serveur prenant en charge curl.

Nous commençons le document PHP définissant le jeton d'accès à la page et l'identifiant de la page que nous avons obtenu à la 1ère étape:

<?php
$page_access_token = 'XXXXXXX';
$page_id = 'YYYYYYYY';

Après cela, nous créons un tableau avec les informations à publier sur notre mur de page:

$data['picture'] = "http://www.example.com/image.jpg";
$data['link'] = "http://www.example.com/";
$data['message'] = "Your message";
$data['caption'] = "Caption";
$data['description'] = "Description";

Vous pouvez bien sûr utiliser tout autre paramètre de poste décrit dans https://developers.facebook.com/docs/reference/api/post/ et si vous n'avez pas besoin d'un ou de plusieurs des paramètres ci-dessus, vous pouvez le faire. supprimez-le simplement.

Ok, à ce stade, nous ajoutons au tableau le jeton d'accès:

$data['access_token'] = $page_access_token;

Et nous avons défini notre URL de publication, pour publier dans notre page:

$post_url = 'https://graph.facebook.com/'.$page_id.'/feed';

Et la dernière étape, nous allons utiliser un curl pour poster notre message dans notre mur de page:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return = curl_exec($ch);
curl_close($ch);
?>

Après cela, nous pouvons sauvegarder notre document PHP et essayer de l'exécuter. Le message peut apparaître sur notre page Facebook.

J'espère que ce code aide d'autres personnes ayant le même problème!

80
nmarti

Vous pouvez tester les jetons en utilisant Débogueur de jetons d'accès à Facebook

Solution de travail pour API v.2.5

  1. Obtenir code pour app_id en tant que paramètre de response_uri

https://www.facebook.com/dialog/oauth?client_id=".$app_id."&redirect_uri=".$response_uri."&response_type=code&scope=manage_pages,publish_pages

  1. Obtenir access_token en fonction de code, app_id et app_secret en tant que résultat de response_uri

https://graph.facebook.com/oauth/access_token?grant_type=authorization_code&client_id=".$app_id."&client_secret=".$app_secret."&code=".$code."&redirect_uri=".$response_uri

  1. Obtenez page_access_token n'expirant jamais pour page_id en fonction de access_token

https://graph.facebook.com/v2.5/".$page_id."?fields=access_token&access_token=".$access_token

4
bq23

En complément de nmarti answer. Valable pour API v.2.4.

Si vous ne voulez pas utiliser la console de l'API Facebook, faites plutôt des appels d'API, voici quelques instructions.

Tout d'abord, vous devez avoir un utilisateur Facebook, étant administrateur sur la page que vous souhaitez publier, vous devez également créer une application Facebook pour pouvoir continuer.

  1. Effectuer une demande de connexion pour obtenir le jeton de l'utilisateur:

https://www.facebook.com/dialog/oauth?client_id=%app-id%&redirect_uri=%votre-site-url%&response_type=token&scope=manage_pages,publish_pages

En réponse, vous devriez obtenir% user-token%, sauvegardez-le, vous en aurez besoin à l'étape suivante.

Lire la suite

  1. Demander un jeton de longue vie:

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=%app-id%&client_secret=%app-secret%&fb_exchange_token=%user-token%

Vous aurez maintenant% de jeton de longue durée%, nécessaire pour obtenir un jeton de page de longue durée.

Lire la suite

  1. Maintenant, obtenez une liste de vos pages Facebook, 

https://graph.facebook.com/v2.4/%page-admin-user-id%/accounts/?access_token=%long-lived-token%

Recherchez dans la liste votre page et un jeton de page. Vous pouvez maintenant continuer à publier sur la page à l'aide de l'exemple nmarti.

Aussi Facebook dit:

Le jeton d'accès à la page résultant n'aura aucune heure d'expiration.

Lire la suite

2
dikirill

Voici la ressource que vous recherchez . Faites défiler la liste jusqu'à Page Login et lisez à partir de là . Vous devez obtenir un jeton d'accès pour votre page, puis utiliser ce jeton lors de la publication. Cela suppose que vous voulez que votre message apparaisse "de la page". IE - affichez comme si vous étiez la page.

l'appel réel à l'API de graphe pour créer un objet de publication, et comment le faire, peut être trouvé à cette URL à partir de la documentation de Facebook. 

0
Lix