Обновить статус страницы Facebook с этой страницы - PullRequest
2 голосов
/ 30 ноября 2010

Я пытаюсь обновить статус моей страницы (с моей страницы). Я успешно разместил на стене страницы следующий код:

require_once 'facebook-php-sdk/src/facebook.php';

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => '...',
  'secret' => '...'
));

$attachment = array(
'access_token' => "...",
'message'=> "Hello World"
);

$facebook->api('/pageId/feed','POST', $attachment);

Но сообщение показывает, что я разместил на странице свой аккаунт (например, в блогах Джо), где я хочу, чтобы он показывал, что он был опубликован самой страницей (т.е. именем страницы).

Или я поступаю неправильно? Стоит ли пытаться изменить статус страницы (если это возможно)?

Любая помощь будет принята с благодарностью.

Ответы [ 3 ]

1 голос
/ 01 декабря 2010

После многих дней, потянув за волосы, я решил эту проблему. Я объясню:

Причина, по которой мои сообщения приходили от меня, а не от страницы, заключается в том, что использованный мною access_token был из моей учетной записи, а не со страницы. Вам нужно будет получить токен доступа с самой страницы.

Что объясняется здесь (http://developers.facebook.com/docs/api#auth) в разделе «Подражание странице»

Вот как я это сделал.

Сначала я разрешил своей учетной записи управлять имеющимися у меня страницами, используя этот URL:

https://graph.facebook.com/oauth/authorize?client_id=...&redirect_uri=...&scope=manage_pages

вам нужно будет вставить client_id с идентификатором вашего приложения и вставить URL-адрес перенаправления - вы попадете на страницу, на которой вас попросят авторизоваться (что вы должны сказать да)

затем в php я получил доступ к деталям моей текущей учетной записи и страниц, которые я администрирую, с помощью следующего кода:

require_once 'facebook-php-sdk/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '...',
  'secret' => '...'
));

$attachment2 = array(
'access_token' => "..." //this is my current user access_token
);

$page =  $facebook->api('/me/accounts', 'get', $attachment2);
print_r($page);

Будет распечатана информация о страницах, которые вы администрируете, и access_tokens для этих страниц (бинго!)

затем вы можете взять эти / те access_token (и) и вставить его в код, который я опубликовал выше, и что - он будет публиковаться на вашей странице с вашей страницы. :)

0 голосов
/ 30 ноября 2010

pageID должен быть определен как страница, которую вы пытаетесь опубликовать:

$pageID = "872348971237345"; //obtained from page's url

$status = $facebook->api($pageID.'/feed', 'post', $attachment);
0 голосов
/ 30 ноября 2010

Вам нужно добавить UID вашей фан-страницы в ваш вызов API.

Я считаю, что это должно быть что-то вроде:

$uid = 'your page id';
$facebook->api('/pageId/feed', 'POST', $attachment, $uid);

Если в вызове не указан UID, по умолчанию используется пользователь сеанса.

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