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>';

    }
Êtes-vous à l'aide de 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