在画布页面应用程序php-sdk中链接到新页面的正确方法

时间:2011-12-30 19:17:53

标签: facebook-php-sdk access-token facebook-canvas

我遇到了几个问题,并想知道是否有人有任何见解。我正在使用最新的php-sdk我正在开发一个具有许多不同步骤的画布应用程序。这些步骤分布在多个页面中。现在当我第一次进入应用程序时,一切似乎都运行正常。访问令牌在那里,我可以调用api函数。在第二页(链接到同一iframe)中,我收到了OAuth错误。现在如果我在第二页上使用它:

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

它会返回正确的用户ID,但在尝试使用api查询时仍然会出错(特别是在此实例中为FQL)

现在,请记住这些链接在iframe中,所以我假设signed_request在某处丢失,我知道facebook通常会通过POST发出此消息。如果我将所有链接设置为target =" _parent"使用http://apps.facebook.com/myapp/page2.php等网址,一切正常。 Facebook这次明确发布了正确的信息。随后,当我使用仅重定向iframe的链接时,它似乎再次正常工作(暗示正在某处设置cookie)。

现在,我已经看到其他应用没有目标=" _parent"似乎工作正常,只在后续点击加载iframe而不是完整的Facebook网站。所以我只能假设他们正在某处存储这些信息。我曾尝试使用httpfox检查这些应用,但我看不到任何明显的问题。有没有人有多个页面应用程序的最佳实践链接?我知道我可以使用完整的URL和目标=" _blank"但我想知道这里发生了什么。我查看了开发人员文档和画布页面示例,但对我来说并不明显。

任何帮助或信息将不胜感激

非常感谢

1 个答案:

答案 0 :(得分:0)

有一些方法可以实现这个目标

  • 使用Facebook JavaScript SDK(将为您设置cookie,因此PHP-SDK可以依赖它)
  • 向您的网页发送POST请求,包括从画布中加载的初始页面中的signed_request