Facebook OpenGraph 3.0 Опубликовать на странице FB с PHP - PullRequest
0 голосов
/ 07 мая 2018

Я не уверен, где я иду не так, но мне нужно опубликовать со своего сайта на моей странице в Facebook.

~ fbautopost.php

require_once("Facebook/facebook.php");

class FacebookPost 
{

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'];
    $pageID = $data['page_ID'];

    $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('/' .$pageID . '/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;
}
}

~ post.php

include('fbautopost.php');

$access_token = 'MY_ACCESS_TOKEN';
$facebookData = array();
$facebookData['consumer_key'] = 'MY_APP_ID';
$facebookData['consumer_secret'] = 'MY_SECRET_KEY';
$facebookData['page_ID'] = 'MY_PAGE_ID';

$title = 'Post Title';
$description = 'This is a test post'; 

$facebook = new FacebookPost($facebookData);
$facebook->share($title, $description, $access_token);

Я не взял приложение из разработки, но как администратор я не вижу ни одного тестового сообщения, размещающего на странице.

Возможно, я не получаю правильный ЖЕСТКИЙ ЖЕЛЕЗ ?? В графическом обозревателе я выбираю свое приложение, затем получаю токен пользователя с разрешениями manage_page и publish_page. Я также пытался использовать Page Token. Ни одна из них не работает. Мой код плохой, или я что-то упускаю?

ТИА

1 Ответ

0 голосов
/ 08 мая 2018

Проблема заключалась в том, что мне нужно было require_once ('Facebook / autoload.php'), а не Facebook.php, который у меня был.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...