Facebook PHP API poster sur mur tombe sous la rubrique “Messages par d'Autres personnes”
Je veux poster un message sur le mur Facebook de la Page. Je suis l'administrateur de l'application et de la page utilisée dans ce code, j'ai déjà donné les autorisations nécessaires pour mon application pour être en mesure de publier sur ma page, ça marche quand j'utilise uniquement le champ "message", comme ceci:
$message = array(
'message' => "Test2",<br>
);
$result = $fb->api('/411895472189524/feed','POST',$message);
Le code ci-dessus affiche pour mon mur de la page et le post est fait "à partir de" la page elle-même, comme si j'allais le faire manuellement à partir de facebook. C'est génial de travailler.
Mais lorsque j'essaie d'ajouter plus de champs comme "lien" ou "image" ou "description" de la poste dans les "Derniers Messages par d'Autres personnes sur le TEST Jojo Page" et le poste est maintenant fabriqués à partir de mon espace personnel (Joelle Landrie) au lieu de partir de la page elle-même. Voir le code ci-dessous.
$message = array(
'message' => "Test2",
'picture' => "http://www.cleanpopo.com/uploads/1/3/1/5/13154615/245431315.jpg",
'description' => "This is a test description",
'link' => "google.com"
);
$result = $fb->api('/411895472189524/feed','POST',$message);
Voir: https://www.facebook.com/pages/TEST-Jojo-Page/411895472189524
La link
champ semble être à l'origine de problème, je peux obtenir un post sur ma page à l'aide de la message
, picture
et description
champ. Seulement c'est inutile pour moi, j'ai besoin de mon post pour avoir un lien.
SOLUTION
Grâce à Shadowfax qui a demandé si j'était à l'aide de la "page_access_token". Je n'étais pas. J'ai commencé à chercher sur le web comment obtenir ce jeton, ajouté à mon code et maintenant il fonctionne très bien!!
Le Code Final
$appId = 'YOUR APP ID';
$secret = 'YOUR SECRET';
$returnurl = 'http://www.yoursite.com';
$permissions = 'manage_pages, publish_stream, offline_access';
$fb = new Facebook(array('appId'=>$appId, 'secret'=>$secret));
$fbuser = $fb->getUser();
if($fbuser){
$page_id = "YOUR PAGE ID";
$page_access_token = "";
$result = $fb->api("/me/accounts");
//loop trough all your pages and find the right one
if( !empty($result['data']) )
{
foreach($result["data"] as $page)
{
if($page["id"] == $page_id)
{
$page_access_token = $page["access_token"];
break;
}
}
}
else
{
echo "AN ERROR OCCURED: could not get the access_token. Please verify the page ID ".$page_id." exists.";
}
//set the facebook active facebook access token as the one we just fetch
$fb->setAccessToken($page_access_token);
//Now try to post on page's wall
try{
$message = array(
'message' => "YOUR MESSAGE",
'picture' => "YOUR PICTURE",
'description' => "YOUR DESCRIPTION",
'link' => "YOUR LINK"
);
$result = $fb->api('/'.$page_id.'/feed','POST',$message);
if($result){
echo 'Successfully posted to Facebook Wall...';
}
}catch(FacebookApiException $e){
echo $e->getMessage();
}
}else{
$fbloginurl = $fb->getLoginUrl(array('redirect-uri'=>$returnurl, 'scope'=>$permissions));
echo '<a href="'.$fbloginurl.'">Login with Facebook</a>';
}
page_access_token
avec votre appel?MERCI, c'est exactement ce qui manquait dans mon code!
Hey, vous devriez envisager de poster votre réponse comme réponse!
OriginalL'auteur Flames | 2013-09-11
Vous devez vous connecter pour publier un commentaire.
En train de poster la réponse à la réponse.
Lors de l'affichage de la page, vous avez besoin pour obtenir
manage_pages
autorisation, puis obtenir la page souhaitée duaccess_token
via/me/accounts
les appels de l'API et de l'utilisation que jeton pour faire de la/{page_id}/feed
appel POST.Flammes, l'affiche originale, réussi à faire cela et posté sa solution éditée dans la question elle-même. Je viens de le coller ici et de le rendre Wiki de la Communauté
break
dans la programmation structurée, ne devriez-vous pas? En outre, vous n'avez pas besoin d'initialiser$page_access_token
avec "" ici, puisque nous ne sommes pas de la programmation en C.OriginalL'auteur