Facebook Tab应用程序和PHP会话

时间:2012-07-23 09:17:42

标签: php facebook session

设定:

有一个Facebook标签应用程序(PHP& Javascript),它安装在两个不同的Facebook页面上。应用程序的每个实例都有一些不同的配置值。

问题:

当通过Facebook加载应用程序时,我可以根据Facebook的“签名请求”确定要加载的内容。但是,当应用程序本身进行AJAX调用以更新某些数据时,是否有办法确定调用的来源,而不会在请求中发送某种标识符?

思想:

我尝试过PHP Sessions,虽然我对会话不是很熟悉,但如果两个实例同时打开,应用程序似乎会感到困惑。我错过了什么吗?

当然,我可以发送某种ID以及每个AJAX请求来指定调用的来源,如上所述,但这是我想避免的。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

会话是用户级别的,因此它不是解决问题的最佳方式。

相反,解决问题的最简单方法是解码signed_request并找到page_idsigned_request的一部分)。然后,当您在页面上进行ajax调用时,请在调用中传递ID(GETPOST数据),以便服务器知道要为该页面加载哪些数据。

您可以执行以下操作:

switch ( $_GET['page_id'] ) {
  case '1234':
    // load settings for page 1234
  break;
  case '5678':
    // load settings for page 5678
  break;
}

或者您可以使用数据库更轻松地管理它并使其可扩展。