2015-04-06 2 views
1

Я попробовал образец кода для публикации на странице Facebook. Но это сообщение как я. Я включил Page_access_token.PHP cURL: Опубликовать на странице Facebook как Страница

Предоставлено разрешение 'manage_pages' и 'publish_action'. Вот мой код:

<?php 

    $page_id='xxxx'; 
    $page_access_token='cccc'; 
    $url="https://graph.facebook.com/{$page_id}/feed?message=Hello&access_token=".$page_access_token; 
    $ch=curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_REFERER, ''); 
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); 
    curl_setopt($ch, CURLOPT_AUTOREFERER, true); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); 

    $value = json_decode(curl_exec($ch)); 
    $var_dump($value); 

?> 

Где я буду неправильно? Как это решить? Я хочу, чтобы он был опубликован как страница. Благодаря

EDIT: Мой новый код с/$ PAGE_ID поля = access_token:

<?php 
    $page_id='xxx'; 
    $message='helloworld'; 
    $url="https://graph.facebook.com/v2.3/{$page_id}?fields=access_token"; 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_REFERER, ''); 
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 
    curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $message); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 10); 

    $json = json_decode(curl_exec($curl)); 
    var_dump($json); 
?> 

Это возвращает ошибку:

object(stdClass)#1 (1) { 
    ["error"]=> 
    object(stdClass)#2 (3) { 
    ["message"]=> 
    string(64) "(#210) A page access token is required to request this resource." 
    ["type"]=> 
    string(14) "OAuthException" 
    ["code"]=> 
    int(210) 
    } 
} 

Где я буду неправильно?

Нужно ли создавать page_access_token из графического API-браузера? или указанного выше URL-адреса? Как я должен использовать User_access_token для получения page_access_token?

+0

Что вы получите как возвращение? –

+0

возвращает идентификатор, что-то вроде этого StdClass объект ( [ID] => 1387602394895539_1390602811262164 ) Сообщение будет размещена на странице, но я не в качестве страницы – SunShine

ответ

1

Если сообщение отправлено как вы, вы не используете токен страницы. Отладка вашего токена и посмотреть, если страница ID перечислен - that's, как вы знаете, эпидермальный токен страницы: https://developers.facebook.com/tools/debug/

Btw, вы должны использовать новый publish_pages разрешение разместить на страницах: https://developers.facebook.com/docs/apps/changelog#v2_3_changes

Информация о как получить доступ лексем:

+0

я тоже попробовал оба «manage_pages» & «publish_pages». Ничего не опубликовано, если я использую только те два. Как получить токен страницы? Мне нужен токен пользователя, чтобы получить токен? – SunShine

+0

есть. Я добавлю некоторые ссылки – luschn

+0

Это была отличная ссылка. Но как я могу достичь этого с помощью cURL? – SunShine

0
<?php 
    $page_id='xxx'; 
    $message='helloworld'; 
$access_token = "XXXXXXXXXXXXXXXXXXXXX"; 
    $url="https://graph.facebook.com/v2.3/{$page_id}/feed/?access_token=".access_token ."&message=".urlencode(message); 
    $curl = curl_init(); 
    curl_setopt($curl, CURLOPT_URL, $url); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_REFERER, ''); 
    curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate'); 
    curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $message); 
    curl_setopt($curl, CURLOPT_TIMEOUT, 10); 

    $json = json_decode(curl_exec($curl)); 
    var_dump($json); 
?> 
+1

Добро пожаловать в Stackoverflow! Обратите внимание, что [ответы только для кода не поощряются] (http://meta.stackexchange.com/questions/148272/is-there-any-benefit-to-allowing-code-only-answers-while-blocking-code- только-Ques). Вы можете улучшить свой ответ, разработав немного. – helmbert

Смежные вопросы