Я использую PHP PHP SDK 3.0.1 (последний в настоящее время). То, что мне нужно, это опубликовать как личность страницы на странице.
Я попытался заменить access_token на access_token, который я получаю со страницы (/me/accounts), однако теперь он говорит, что токен по какой-то причине недействителен. Facebook "олицетворение" страниц теперь отключен, и я не вижу никакой информации в API относительно того, что я хочу. Может быть, я потерялся или, возможно, не смотрю в правильном направлении.
Вот пример .php, который я модифицировал и использовал для архивирования:
require '../src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxxxxxxxxxxx',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
));
// Get User ID
$user = $facebook->getUser();
//Lists all the applications and pages
if ($user) {
try {
// Proceed knowing you have a logged in user who authenticated.
$accounts_list = $facebook->api('/me/accounts');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
$page_selected = 'xxxxxxxxxxxx';
$page_access_token = $accounts_list['data']['0']['access_token'];
echo 'page_access_token:' . $page_access_token;
<?php
if (isset($_GET['publish'])){
try {
$publishStream = $facebook->api("/$page_selected/feed", 'post', array(
'access_token' => '$page_access_token',
'message' => 'Development Test message',
'link' => 'http://xxxxxxx.com',
'picture' => 'http://xxxxxx/xxxx_logo.gif',
'name' => 'xxxxxxxx Goes Here',
'description'=> 'And the exciting description here!'
)
);
//as $_GET['publish'] is set so remove it by redirecting user to the base url
} catch (FacebookApiException $e) {
echo($e);
echo $publishStream;
echo 'catch goes here';
}
}
?>
Поскольку я не могу ответить на свой вопрос, я отредактировал вопрос.
Прошел через весь API.
Решение:
Перед публикацией в качестве страницы вам нужно указать свой доступ к странице входа на одну страницу.
$facebook->setAccessToken($page_access_token);
делает именно это, а потом все идет так, как обычно ожидалось, не нужно изменять функцию post и добавлять параметр "access_token" для публикации.