设定:
有一个Facebook标签应用程序(PHP& Javascript),它安装在两个不同的Facebook页面上。应用程序的每个实例都有一些不同的配置值。
问题:
当通过Facebook加载应用程序时,我可以根据Facebook的“签名请求”确定要加载的内容。但是,当应用程序本身进行AJAX调用以更新某些数据时,是否有办法确定调用的来源,而不会在请求中发送某种标识符?
思想:
我尝试过PHP Sessions,虽然我对会话不是很熟悉,但如果两个实例同时打开,应用程序似乎会感到困惑。我错过了什么吗?
当然,我可以发送某种ID以及每个AJAX请求来指定调用的来源,如上所述,但这是我想避免的。
有什么建议吗?
答案 0 :(得分:3)
会话是用户级别的,因此它不是解决问题的最佳方式。
相反,解决问题的最简单方法是解码signed_request
并找到page_id
(signed_request
的一部分)。然后,当您在页面上进行ajax调用时,请在调用中传递ID(GET
或POST
数据),以便服务器知道要为该页面加载哪些数据。
您可以执行以下操作:
switch ( $_GET['page_id'] ) {
case '1234':
// load settings for page 1234
break;
case '5678':
// load settings for page 5678
break;
}
或者您可以使用数据库更轻松地管理它并使其可扩展。