douju1852 2015-08-21 11:21
浏览 135
已采纳

Facebook页面上的PHP自动发布

I am trying to auto post on Facebook page using my app it works fine if I replace my-page-numeric-id with my profile numeric id, but when I put my page numeric id instead of my-page-numeric-id and put valid access token it won't publish on Facebook page I tried to submit review permission that are as follow "manage_pages, publish_actions" but Facebook team mentioned that you don't need it all because you own this page and your currently admin of it, these permission are necessary when any other person need to authorize with your app. Now my question is, my code works perfectly for publishing post on my profile's wall but i am unable to auto post on my page what is the problem behind it i am unable to figure out here is my code

<?php
 require_once 'src/facebook.php';
class FacebookApi {

    var $consumer;
    var $token;
    var $method;
    var $http_status;
    var $last_api_call;
    var $callback;
    var $connection;
    var $access_token;

    function __construct($data){
        $config = array();
        $config['appId'] = $data['consumer_key'];
        $config['secret'] = $data['consumer_secret'];

        $this->connection = new Facebook($config);

    }

    function share($title, $targetUrl, $imgUrl, $description, $access_token){

        $this->connection->setAccessToken($access_token);

        $params["access_token"] = $access_token;
        if(!empty($title)){
            $params["message"] = $title;
            $params["name"] = $title;
        }
        if(!empty($targetUrl)){
            $params["link"] = $targetUrl;
        }
        if(!empty($imgUrl)){
            $params["picture"] = $imgUrl;
        }
        if(!empty($description)){
            $params["description"] = $description;
        }

        // post to Facebook
        try {
          $ret = $this->connection->api('/my-page-numeric-id/feed', 'POST', $params);
        } catch(Exception $e) {
          $e->getMessage();
        }

        return true;
    }

    function getLoginUrl($params){
        return $this->connection->getLoginUrl($params);
    }

    function getContent($url) {
        $ci = curl_init();
        /* Curl settings */
        curl_setopt($ci, CURLOPT_URL, $url);
        curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ci, CURLOPT_HEADER, false);
        curl_setopt( $ci, CURLOPT_CONNECTTIMEOUT, 10 );

        curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);

        $response = curl_exec($ci);
        curl_close ($ci);
        return $response;
      }
}

$access_token = 'long-live-token-here';
$facebookData = array();
$facebookData['consumer_key'] = 'app-id-here';
$facebookData['consumer_secret'] = 'app-secret-here';

$title = "Demo Content Posted on Timeline";
$targetUrl = "http://www.demo_url.com/1234-post";
$imgUrl = "http://www.demo_url.com/1234-post-image.png";
$description = "demo_description_here"; 

$facebook = new FacebookApi($facebookData);
$facebook->share($title, $targetUrl, $imgUrl, $description, $access_token);

?>
  • 写回答

2条回答 默认 最新

  • dongpo1846 2015-08-21 14:44
    关注

    With API v2.3, they have split the publishing permission into two separate ones:

    • publish_actions is for anything you want to publish as a user

    • if you want to publish as a page however, you need publish_pages permission (in addition to manage_pages)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?