Php FB Canvas应用程序:获取请求id
用户已发送应用程序请求(使用本机fb.ui:apprequest)。当他的朋友打开通知(“xxx已邀请您使用应用程序”)时,URL如下所示:Php FB Canvas应用程序:获取请求id,php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,用户已发送应用程序请求(使用本机fb.ui:apprequest)。当他的朋友打开通知(“xxx已邀请您使用应用程序”)时,URL如下所示: https://apps.facebook.com/app_name/?fb_source=notification& request_ids=THE_REQUEST_ID&ref=notif&app_request_type=user_to_user& notif_t=app_request 在此页面上,我的网页
https://apps.facebook.com/app_name/?fb_source=notification&
request_ids=THE_REQUEST_ID&ref=notif&app_request_type=user_to_user&
notif_t=app_request
在此页面上,我的网页显示在iframe中
以前,我可以在我的页面上(在iframe内)简单地调用:$\u GET['request\u id']
来获取请求id(为什么?因为我需要跟踪谁发送了邀请)
然而,这不再有效。我几乎什么都试过了
根据facebook文档,我之前使用的解决方案是正确的。见:
(向下滚动一点,转到PHP示例)
Facebook是否删除了此功能?那会很伤心,我想/希望不会
人们也有类似的问题(所有人都提出了解决方案,但该方案不再有效):
exit(print\r($facebook->getSignedRequest(),TRUE))代码>-哪个输出:
algorithm => HMAC-SHA256
issued_at => 1395696960
user =>
country => dk
locale => da_DK
age =>
min => 21
user_id => the_user_id (ONLY WHEN APP HAS ALREADY BEEN AUTHED IT SEEMS)
关闭,但没有雪茄。我一直在寻找解决方案,我能得到的最好方法是对/me/apprequests
进行API调用-它将返回来自应用程序的所有请求
我知道你仍然不知道你点击了哪一个(以防你收到多个邀请),但这是一个进步,直到FB排序它的东西
简单的JS示例:
FB.api('/me/apprequests', function(r){
if (r && r.data) {
for (var i = 0; i < r.data.length; i++) {
var id = r.data[i].id.split('_')[0]; // this is the request id
console.log(id, r.data[i]);
};
}
})
FB.api('/me/apprequests',函数(r){
if(r&r.data){
对于(var i=0;i
我最近也遇到了同样的问题。但问题不在facebook方面。这实际上是我们的Nginx服务器上的一个配置问题
我们在根页面上设置了重定向,它删除了facebook传递给canvas应用程序的所有cgi参数。修复Nginx配置后,一切正常。这是正确的方法,我不知道有任何关于更改的公告。然而,Facebook正在推出一种新的页面“布局”(没有什么太大的变化,但有一些小的变化),我已经看到人们抱怨页面标签应用程序和app\u data
参数没有被正确传递……所以我猜,他们可能在这个过程中搞砸了什么。我建议打开一个bug报告:谢谢。我填了一份报告!