У меня есть приложение facebook canvas, и я использую последнюю версию PHP SDK.
У меня есть рабочий процесс, который выглядит следующим образом.Пользователь входит в Facebook и нажимает на приложение из своего списка приложений.
Пользователь попадает на страницу формы -> нажимает на отправку -> пользователь не видит, что проходит страницу обработки формы и пытается опубликоватьна стену -> заголовок перенаправить на страницу приглашения.
Поток работает, потому что я встроил прозрачную обработку ошибок.Тем не менее, во время этой первой прогулки по потоку нет настенного столба.Повторите, нажав на значок Facebook, чтобы перейти на домашнюю страницу пользователя, нажмите на ссылку приложения в списке пользовательских приложений.
Пользователь попадает на страницу формы -> нажимает кнопку отправки -> пользователь не видит, что этопроходит страницу обработки формы и пытается отправить сообщение на стену -> перенаправление заголовка на страницу приглашения.
На этот раз и каждый раз после того, как это работает.
Ошибка, которую я получаю при первой попытке, состоит в том, что сессия access_token недействительна.Каждый раз после этого, пока пользователь не выйдет из системы, он будет работать, и я никогда не получу плохой токен.
НА СТРАНИЦЕ ПРОЦЕССА ФОРМЫ, ГДЕ КОД СТОЛБА:
$user = null;
require "/usr/home/app/www/fb/facebook.php";
//facebook application
$fbconfig['appid' ] = "xxx";
$fbconfig['secret'] = "xxx";
$fbconfig['baseUrl'] = "http://www.app.com/fb";
$fbconfig['appBaseUrl'] = "http://apps.facebook.com/app";
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
));
//session_write_close();
$user = $facebook->getUser();
try {
$publishStream = $facebook->api("/me/feed", 'post', array(
'message' => "mess",
'link' => 'http://apps.facebook.com/app',
'picture' => 'http://images.app.com/img.jpg',
'name' => 'name',
'description'=> 'des'
)
);
} catch (FacebookApiException $e) {
d($e);
}
header("Location: https://www.app.com/fb/invite.php");
Это точная ошибка, усеченная для исключения ошибочной информации:
FacebookApiException Object
(
[result:protected] => Array
(
[error] => Array
(
[message] => An active access token must be used to query information about the current user.
[type] => OAuthException
)
)
....