Я хочу сделать следующее (простое):
- написать класс PHP, который публикует сообщения в фид страницы
Я создал приложение Facebook, получил токен авторизации для следующих действий:
scope=publish_stream,offline_access,read_stream,manage_pages
Все выглядит нормально, сообщение опубликовано правильно, возвращаемый результат выглядит примерно так:
{"id":"pageid_newmessageid"}
Однако сообщение не публикуется на стене указанной страницы. Кроме того, когда я пытаюсь получить доступ к https://graph.facebook.com/pageid/feed?access_token=token, это сообщение не появляется.
Есть идеи, почему?
Код PHP:
<?php
class Facebook
{
/**
* @var The page id to edit
*/
private $page_id = 'pageid';
/**
* @var the page access token given to the application above
*/
private $page_access_token = 'token';
/**
* @var The back-end service for page's wall
*/
private $post_url = '';
/**
* Constructor, sets the url's
*/
public function Facebook()
{
$this->post_url = 'https://graph.facebook.com/' . $this->page_id . '/feed';
}
/**
* Manages the POST message to post an update on a page wall
*
* @param array $data
* @return string the back-end response
* @private
*/
public function message($data)
{
// need token
$data['access_token'] = $this->page_access_token;
// init
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// execute and close
$return = curl_exec($ch);
curl_close($ch);
// end
print_r($return);
return $return;
}
}
$facebook = new Facebook();
$facebook->message(array( 'message' => 'Some messag',
'link' => 'http://www.google.com',
'description' => 'Full description explaining whether the header'));
?>