web-dev-qa-db-fra.com

Comment postez-vous au mur sur une page facebook (pas de profil)

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

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

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

Notez qu’il s’agit d’afficher au mur une nouvelle page de style et non un profil.

Merci d'avance.

86
gilbert_g

Obtenez le PHP SDK 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 poster sur vos amis ou un autre mur, remplacez me par l'ID utilisateur Facebook de cet utilisateur ... pour plus d'informations, consultez la documentation de l'API.

65
Harish Kurup

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);
}
9
Helton Uchoa

Harish a la réponse ici - sauf que vous devez demander l'autorisation manage_pages lors de l'authentification, puis utiliser le page-id au lieu de me lors de la publication ....

$result = $facebook->api('page-id/feed/','post',$attachment);
8
Phill Price

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 'partage' qu'ils fournissent, qui nécessitent une interaction de l'utilisateur.

5
Darryl E. Clarke

Si votre blog génère 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 sur Facebook; il suffit de chercher "Facebook pour les applications RSS" ...

3
Ricky

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

Envoyer le message au mur Facebook:

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

Le message, le nom, le lien, la description et la photo seront envoyés au mur Facebook . Le statut de post-soumission sera affiché.

Si le jeton d'accès FB ($ accessToken) n'est pas disponible, connectez-vous à Facebook L'URL sera générée et l'utilisateur sera redirigé vers le login FB page.

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éférences:

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/

0
aghilpro