2011-12-30 2 views
1

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

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

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

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

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

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

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

ответ

0

Существует несколько способов достижения этой

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

Привет, спасибо, что ответили. У меня есть javascript SDK на странице, скрипт определенно загружается. Что странно, я использовал ту же самую настройку на веб-сайте, используя facebook для входа в систему, и он отлично работает. Я попытался установить файл cookie со значением $ _REQUEST ['signed_request'], но даже это не кажется доступным на следующей странице. – TommyBs

+0

Я принял это правильно, как это технически, но для чего это стоит, я отсутствовала цитата, следовательно, она работала. Что странно, Firebug и т. Д. Показывал загрузку js, но явно не выполнял – TommyBs