Comment publiez-vous sur le mur sur une page Facebook (pas de profil)

86

J'ai un site de blog écrit en php et il publie de nouveaux articles de blog sur Twitter et un ping de blog automatiquement sous le capot en utilisant de simples requêtes de publication http passées en utilisant php curl.

J'ai une page facebook pour le site de blog et je souhaite que les mises à jour soient affichées sur le mur de la page, y a-t-il un moyen simple de le faire?

Ce que je veux vraiment, c'est une URL et un ensemble de paramètres à colis en tant que demande de publication http.

Notez qu'il s'agit de publier sur le mur sur une nouvelle page de style et non sur un profil.

Merci d'avance.

Tapis
la source
Avez-vous essayé le Wiki des développeurs Facebook sur wiki.developers.facebook.com/index.php/Main_Page ou ailleurs dans leur site de développeurs developer.facebook.com/?ref=pf ?
DOK
Je ne suis pas fan de facebook dev mais je pense que vous devez d'abord écrire une application fb pour être autorisé à le faire.
sepehr

Réponses:

65

Obtenez le SDK PHP de github et exécutez le code suivant:

<?php
$attachment = array(
    'message' => 'this is my message',
    'name' => 'This is my demo Facebook application!',
    'caption' => "Caption of the Post",
    'link' => 'http://mylink.com',
    'description' => 'this is a description',
    'picture' => 'http://mysite.com/pic.gif',
    'actions' => array(
        array(
            'name' => 'Get Search',
            'link' => 'http://www.google.com'
        )
    )
);

$result = $facebook->api('/me/feed/', 'post', $attachment);

le code ci-dessus affichera le message sur votre mur ... et si vous souhaitez publier sur le mur de vos amis ou d'autres personnes, remplacez-le mepar l'identifiant d'utilisateur Facebook de cet utilisateur ... pour plus d'informations, consultez la documentation de l'API.

Harish Kurup
la source
ce code fonctionne très bien !, mais dans le message il n'y a pas d'image .. Qu'est-ce que je manque ici? Merci!
Diego
@Diego vérifie l'URL des photos. dans l'exemple ci-dessus, son mysite.com/pic.gif. il récupérera donc la photo dans l'url donnée. alors essayez de le régler. Veuillez consulter la documentation fb pour tout changement dans les paramètres, car la dernière fois que j'ai travaillé dans le front FB était août 2010 ..
Harish Kurup
$ facebook est-il une variable intégrée à l'installation de php? sinon, comment l'instance $ facebook est-elle créée?
sadmicrowave le
@sadmicrowave la variable $ facebook est l'objet de la classe Facebook (peut avoir changé le nom de la classe, veuillez donc lire la documentation après avoir eu l'idée). Vous devez instancier l'objet par le code suivant "$ facebook = new Facebook (array ('appId' => APPID, 'secret' => SECRETKEY, 'cookie' => true));"
Harish Kurup
Vous devez également avoir installé le SDK PHP dans votre application pour avoir accès à la classe Facebook
mitchellhislop
9

Cela fonctionne pour moi:

try {
       $statusUpdate = $facebook->api('/me/feed', 'post',
                 array('name'=>'My APP on Facebook','message'=> 'I am here working',
                 'privacy'=> array('value'=>'CUSTOM','friends'=>'SELF'),
                 'description'=>'testing my description',
                 'picture'=>'https://fbcdn-photos-a.akamaihd.net/mypicture.gif',
                 'caption'=>'apps.facebook.com/myapp','link'=>'http://apps.facebook.com/myapp'));
 } catch (FacebookApiException $e) {
      d($e);
}
Helton Uchoa
la source
J'ai un problème avec OAuth, erreur 200. Mon APP demande manage_pages, publish_actions, publish_stream ... Une idée?
Jepser Bernardino
8

Harish a la réponse ici - sauf que vous devez demander l' manage_pagesautorisation lors de l'authentification, puis en utilisant le page-idau lieu de melors de la publication ....

$result = $facebook->api('page-id/feed/','post',$attachment);
Phill Price
la source
1
mais vous devez avoir besoin d'un jeton d'accès à la page pour publier en tant que page
Danish Iqbal
5

Vous ne pouvez pas publier automatiquement sur les murs Facebook sans créer une application et utiliser l'éditeur de flux basé sur un modèle, comme l'a souligné Frank.

La seule chose que vous pouvez faire est d'utiliser les widgets de «partage» qu'ils fournissent, qui nécessitent une interaction de l'utilisateur.

Darryl E. Clarke
la source
3

Si votre blog produit un flux RSS, vous pouvez utiliser l'application " RSS Graffiti " de Facebook pour publier ce flux sur votre mur dans Facebook. Il existe également d'autres applications RSS Facebook; recherchez simplement "Facebook pour les applications RSS" ...

Ricky
la source
0

Vous pouvez effectuer des appels API en choisissant la méthode HTTP et en définissant des paramètres facultatifs:

$facebook->api('/me/feed/', 'post', array(
    'message' => 'I want to display this message on my wall'
));

Soumettre la publication sur le mur Facebook:

Incluez le fichier fbConfig.php pour connecter l'API Facebook et obtenir le jeton d'accès.

Le message du message, le nom, le lien, la description et l'image seront soumis au mur Facebook. L'état de la soumission sera affiché.

Si le jeton d'accès FB ($ accessToken) n'est pas disponible, l'URL de connexion Facebook sera générée et l'utilisateur sera redirigé vers la page de connexion FB.

Publier sur le mur Facebook php sdk

<?php
//Include FB config file
require_once 'fbConfig.php';

if(isset($accessToken)){
    if(isset($_SESSION['facebook_access_token'])){
        $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
    }else{
        // Put short-lived access token in session
        $_SESSION['facebook_access_token'] = (string) $accessToken;

        // OAuth 2.0 client handler helps to manage access tokens
        $oAuth2Client = $fb->getOAuth2Client();

        // Exchanges a short-lived access token for a long-lived one
        $longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
        $_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;

        // Set default access token to be used in script
        $fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
    }

    //FB post content
    $message = 'Test message from CodexWorld.com website';
    $title = 'Post From Website';
    $link = 'http://www.codexworld.com/';
    $description = 'CodexWorld is a programming blog.';
    $picture = 'http://www.codexworld.com/wp-content/uploads/2015/12/www-codexworld-com-programming-blog.png';

    $attachment = array(
        'message' => $message,
        'name' => $title,
        'link' => $link,
        'description' => $description,
        'picture'=>$picture,
    );

    try{
        //Post to Facebook
        $fb->post('/me/feed', $attachment, $accessToken);

        //Display post submission status
        echo 'The post was submitted successfully to Facebook timeline.';
    }catch(FacebookResponseException $e){
        echo 'Graph returned an error: ' . $e->getMessage();
        exit;
    }catch(FacebookSDKException $e){
        echo 'Facebook SDK returned an error: ' . $e->getMessage();
        exit;
    }
}else{
    //Get FB login URL
    $fbLoginURL = $helper->getLoginUrl($redirectURL, $fbPermissions);

    //Redirect to FB login
    header("Location:".$fbLoginURL);
}

Réfrences:

https://github.com/facebookarchive/facebook-php-sdk

https://developers.facebook.com/docs/pages/publishing/

https://developers.facebook.com/docs/php/gettingstarted

http://www.pontikis.net/blog/auto_post_on_facebook_with_php

https://www.codexworld.com/post-to-facebook-wall-from-website-php-sdk/

Farhad
la source
Merci. Avez-vous essayé le code? Les extraits d'aperçu des liens personnalisés sont désormais obsolètes, de sorte que le code ne sera pas
publié