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!
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!
Vous pouvez tester les jetons en utilisant Débogueur de jetons d'accès à Facebook
Solution de travail pour API v.2.5
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
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
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
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.
En réponse, vous devriez obtenir% user-token%, sauvegardez-le, vous en aurez besoin à l'étape suivante.
Vous aurez maintenant% de jeton de longue durée%, nécessaire pour obtenir un jeton de page de longue durée.
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.
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.