Правильный способ ссылки на новую страницу в приложении холст страницы php-sdk - PullRequest
1 голос
/ 30 декабря 2011

Я сталкиваюсь с парой вопросов и спрашиваю, есть ли у кого-нибудь понимание.Я использую последнюю версию php-sdk. Я разрабатываю приложение для canvas, в котором есть несколько разных шагов.Эти шаги распространяются на несколько страниц.Теперь, когда я впервые захожу в приложение, кажется, все работает нормально.Маркер доступа есть, и я могу вызывать функции API.На второй странице (которая связана с тем же iframe) я получаю ошибки OAuth.Теперь, если я использую это на 2-й странице:

 $me = $facebook->getUser();
 var_dump($me);

, он возвращает правильный идентификатор пользователя, но я все еще получаю ошибки при попытке использовать запрос API (в частности, FQL в данном случае)

Теперь, имейте в виду, что эти ссылки находятся внутри iframe, так что я предполагал, что подписанный запрос теряется где-то, я знаю, что Facebook обычно выдает это через POST.Если я установлю все мои ссылки на target = "_ parent" с URL-адресом, таким как http://apps.facebook.com/myapp/page2.php, то все будет работать нормально.На этот раз Facebook явно публикует правильную информацию.Впоследствии, когда я использую ссылки, которые только перенаправляют iframe, он снова работает нормально (подразумевается, что где-то устанавливается cookie).

Теперь я видел другие приложения, у которых нет цели = "_parent ", которые, кажется, работают правильно, загружая iframe только при последующих щелчках, а не на весь сайт Facebook.Так что я могу только предположить, что они хранят эту информацию где-то.Я пытался проверить эти приложения с помощью httpfox, но не вижу ничего очевидного.У кого-нибудь есть ссылки для лучшей практики с многостраничными приложениями?Я знаю, что могу обойти это, используя полные URL и target = "_ blank", но я хотел бы знать, что здесь происходит.Я просмотрел документы для разработчиков и примеры страниц холста, но для меня нет ничего очевидного.

Любая помощь или информация будет оценена

Большое спасибо

1 Ответ

0 голосов
/ 30 декабря 2011

Есть несколько способов достичь этого

  • с помощью Facebook JavaScript SDK (который установит для вас cookie, так что PHP-SDK может на него положиться)
  • выдача запроса POST дляваши страницы, включая signed_request с начальной страницы, загруженной на холст
...