API Facebook, отправляем сообщение на страницу Facebook из PHP.
При отправке сообщения почему-то НЕ происходит автоматический запрос с помощью file_get_contents().
Код:
require 'facebook-sdk/facebook.php'; //подключаем sdk facebook
define('FACEBOOK_APP_ID',"[facebook_app_id]"); // идентификатор приложения AppId
define('FACEBOOK_SECRET',"[facebook_secret]"); // секретный ключ App Secret
define('PAGE_ID',"[page_id]"); // идентификатор страницы (пользователя, группы, события)
define('UID',"[UID]"); // идентификатор страницы или пользователя от имени которого будет опубликована новость
$user = null;
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET,
'cookie' => true
)); //создаем объект facebook
$user = $facebook->getUser(); //проверяем доступ пользователя
if ($user == 0) { //если его нет
$login_url = $facebook->getLoginUrl($params = array('scope' => 'manage_pages,offline_access,publish_stream, read_stream')); //создаем запрос на получение доступа
file_get_contents($login_url); // выполняем запрос, здесь он как раз не выполняется, но если сделать echo $login_url, и выполнить его вручную (через строку браузера), то все получится и $user != 0, скрипт пойдет дальше.
}
$params = array(
'name' => 'Имя',
'href' => 'Ссылка',
'description' => 'Описание',
'media' => array(array('type' => 'image', 'src' => [картинка], 'href' => '[ссылка]'))
); //массив с вложением
$message = 'Это сообщение'; // сообщение
$attachment = urlencode(json_encode($params)); //приводим к нужному виду
$url = 'https://api.facebook.com/method/stream.publish?message='.$message.'&attachment='.$attachment.'&target_id='.PAGE_ID.'&uid='.UID.'&access_token='.$facebook->getAccessToken(); //создаем запрос
$res = file_get_contents($url); //все таже ситуация, если ручками все отлично, и сообщение даже отправится на нужную нам страничку с нужными вложениями, если через file_get_contents() не получается.
define('FACEBOOK_APP_ID',"[facebook_app_id]"); // идентификатор приложения AppId
define('FACEBOOK_SECRET',"[facebook_secret]"); // секретный ключ App Secret
define('PAGE_ID',"[page_id]"); // идентификатор страницы (пользователя, группы, события)
define('UID',"[UID]"); // идентификатор страницы или пользователя от имени которого будет опубликована новость
$user = null;
$facebook = new Facebook(array(
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_SECRET,
'cookie' => true
)); //создаем объект facebook
$user = $facebook->getUser(); //проверяем доступ пользователя
if ($user == 0) { //если его нет
$login_url = $facebook->getLoginUrl($params = array('scope' => 'manage_pages,offline_access,publish_stream, read_stream')); //создаем запрос на получение доступа
file_get_contents($login_url); // выполняем запрос, здесь он как раз не выполняется, но если сделать echo $login_url, и выполнить его вручную (через строку браузера), то все получится и $user != 0, скрипт пойдет дальше.
}
$params = array(
'name' => 'Имя',
'href' => 'Ссылка',
'description' => 'Описание',
'media' => array(array('type' => 'image', 'src' => [картинка], 'href' => '[ссылка]'))
); //массив с вложением
$message = 'Это сообщение'; // сообщение
$attachment = urlencode(json_encode($params)); //приводим к нужному виду
$url = 'https://api.facebook.com/method/stream.publish?message='.$message.'&attachment='.$attachment.'&target_id='.PAGE_ID.'&uid='.UID.'&access_token='.$facebook->getAccessToken(); //создаем запрос
$res = file_get_contents($url); //все таже ситуация, если ручками все отлично, и сообщение даже отправится на нужную нам страничку с нужными вложениями, если через file_get_contents() не получается.
P.S. На хостинге точно включена возможность использовать как file_get_contents() так и cURL. - Проверено.
Ребят, ну неужели за столько просмотров, ни у кого не возникло никаких мыслей?
У меня пока возник один вопрос: как на FB сообщение через GET ты передаёшь?
Цитата: mfender
У меня пока возник один вопрос: как на FB сообщение через GET ты передаёшь?
хм... немного непонятен вопрос, разве не так $res = file_get_contents($url); ?