简体   繁体   English

在用户的墙上自动发布(Facebook App)

[英]Post automatically on the wall of user (facebook App)

i want for my app to post on a user's wall on behalf (for advertising eg). 我希望我的应用程序代表用户的墙发布(例如广告)。 I think about creating a php script, which i will execute with a cron job on my server every week. 我想创建一个php脚本,我将每周在我的服务器上执行一个cron作业。 I have the userids in my database. 我的数据库中有用户ID。 Now i want that the script gets an userid and then posts on the wall of the user. 现在我希望脚本获取用户ID,然后在用户的墙上发布。 (of course if the user has got still installed the app and granted the publish stream permission) (当然,如果用户仍然安装了应用程序并授予了发布流权限)

is it possible to create a script that triggers this? 是否可以创建一个触发此脚本的脚本?
$post = $facebook->api("/$user1/feed","POST",$params); $ post = $ facebook-> api(“/ $ user1 / feed”,“POST”,$ params); or 要么
$post = $facebook->api("/$user2/feed","POST",$params); $ post = $ facebook-> api(“/ $ user2 / feed”,“POST”,$ params); etc...? 等等...?

Thank for advise 谢谢你的建议

<?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();
     }

  }

 ?>

To solve your problem , I will share my code with you . 为了解决您的问题,我将与您分享我的代码。 this worked for me . 这对我有用。

You need just to to write some loop while to select all users id from your database . 您只需要编写一些循环,同时从数据库中选择所有用户ID。

    <?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,
    ) );


     ?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM