5 votes

Poster automatiquement sur le mur de l'utilisateur (App facebook)

Je veux que mon application affiche sur le mur d'un utilisateur au nom (pour la publicité par exemple). Je pense créer un php script, que j'exécuterai avec un cron job sur mon serveur chaque semaine. J'ai les userids dans ma base de données. Maintenant je veux que le script obtienne un userid et ensuite poste sur le mur de l'utilisateur. (bien sûr si l'utilisateur a encore installé l'application et accordé la permission de publier le flux)

est-il possible de créer un script qui déclenche cela ?
$post = $facebook->api("/$user1/feed", "POST",$params) ; ou bien
$post = $facebook->api("/$user2/feed", "POST",$params) ; etc... ?

Merci pour le conseil

<?php

require 'src/facebook.php';
$app_id = 'yourappid';
$app_secret = 'yourappsecret';
$app_namespace = 'appname';
$app_url = 'https://apps.facebook.com/' . $app_namespace . '/';
$scope = 'email,publish_actions';

// Init the Facebook SDK
$facebook = new Facebook(array(
 'appId'  => $app_id,
 'secret' => $app_secret,
));

// Get the current user
$user = $facebook->getUser();

// If the user has not installed the app, redirect them to the Auth Dialog
if (!$user) {
  $loginUrl = $facebook->getLoginUrl(array(
   'scope' => $scope,
   'redirect_uri' => $app_url,
 ));

  print('<script> top.location.href=\'' . $loginUrl . '\'</script>');

   }

    else {

       try {
        $params = array(
            'message'       =>  "your message",
            'name'          =>  "hello world",
            'description'   =>  "hello world",
            'link'          =>  "hello world",
            'picture'       =>  "hello world",
        );

        $post = $facebook->api("/$user/feed","POST",$params);

        echo "";

     }
      catch (FacebookApiException $e) {
       $result = $e->getResult();
     }

  }

 ?>

4voto

Ahmad Samilo Points 739

Pour résoudre votre problème, je vais partager mon code avec vous. Ceci a fonctionné pour moi.

Il vous suffit d'écrire une boucle pour sélectionner tous les utilisateurs de votre base de données.

    <?php 

     //// publish as status 

     //// publish post to users 

         require_once("facebook.php");

       $app_id = "xxxxxxxxxxx";
       $app_secret = "xxxxxxxxxxxxxx";
       $my_url = "http://t.xxxxx.net/facebook/publish.php/"; // refer number 

    ///
       $config = array();
      $config['appId'] = 'xxxxxxxx';
      $config['secret'] = 'xxxxxxxxxxxx';
      $config['fileUpload'] = false; // optional

        $facebook = new Facebook($config);
       ///

    ////

      function getAccessToken() {
        if ($this->accessToken !== null) {
          return $this->accessToken;
        }

        $this->setAccessToken($this->getApplicationAccessToken());
        $user_access_token = $this->getUserAccessToken();
        if ($user_access_token) {
          $this->setAccessToken($user_access_token);
        }

        return $this->accessToken;
      }

       function getApplicationAccessToken() {
        return $this->appId.'|'.$this->appSecret;
    }

    /////////////////////////////// Update status Function 
    //xxxxxxxx
    $session = $facebook->getUser();

    // New SDK
    $facebook->api ( array(
        'method' => 'users.setStatus',
     'status' => 'Hi 
this new status by my app 

     ',
      'uid'    => '21511',/// user_id 
      'session'=>$session,
    ) );

     ?>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X