PHP auto post on facebook page

10,603

Solution 1

now it's time for facebook v5 sdk

$fb = new Facebook\Facebook([
  'app_id' => 'app_id',
  'app_secret' => 'app_secret',
  'default_graph_version' => 'v2.8',
  ]);
             // facebook auto post

$params = array(
  "message" => "$title in $merchant   $short",
  "link" => "http://pickmyoffers.com/",
  "picture" => "http://Pickmyoffers.com/images/searched/Flipkart.png",
  "name" => "www.Pickmyoffers.com",
  "caption" => "www.pickmyoffers.com",
  "description" => "Submit Coupon and earn money through Pickmyoffers.com | Deals,Coupons and offers."
);
            $post = $fb->post('/Page_id/feed',$params, $access_token);
            $post = $post->getGraphNode()->asArray();

}

hope it's help

Solution 2

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)

Share:
10,603
Brajman
Author by

Brajman

Updated on June 04, 2022

Comments

  • Brajman
    Brajman almost 2 years

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