这让我发疯了。我知道很多人遇到空的signed_request参数问题......这不是其中一个问题!
我得到$ _REQUEST ['signed_request']数据并在PHP中解码它没有问题。我正在使用iframe画布创建一个页面选项卡,其中一个是“点击以访问更多信息”页面,这些页面目前非常受欢迎。
问题是signed_request数据不包含预期的['page']字段,它包含一个['profile_id'],用于“用FBML编写并加载到页面选项卡中的应用程序”(来自https://developers.facebook.com/docs/authentication/signed_request/)。
我已经检查并检查了我的设置,它绝对是一个iframe画布。还有其他人有这个问题吗?!
解码的signed_request数据示例:
Array ( [algorithm] => HMAC-SHA256 [issued_at] => 1320926195 [profile_id] => XXXXXXXXXX [user] => Array ( [country] => au [locale] => en_US [age] => Array ( [min] => 21 ) ) )
答案 0 :(得分:0)
我设法通过重新创建应用来解决此问题。旧应用程序是在前一段时间创建的,当时FBML仍然是一个选项,即使我将设置更改为iframe也导致了一些遗留问题。
无论如何,修改应用程序设置并重新开始修复问题!
答案 1 :(得分:0)
我遇到了同样的问题,但创建另一个应用程序并不是我的选择。我开始尝试不同的配置,当我激活迁移选项页面标签iframe
时,我设法开始收到预期的响应在您的应用程序设置 - >高级 - >页面标签iframe - >启用
然后您会收到类似的内容:
{"algorithm":"HMAC-SHA256","expires":0,"issued_at":1334321200,"oauth_token":"AAAAAZAj4rx20B4E3Z5BWYJwyfZATJFE9j0P3AXZAnEum451qFiIXnhCvzmZCFIZCmZCc83JKUsiyhzRSpFDXHEXzmeBIqjHdVxtWI1xNBSCPzwZDZD","page":{"id":"259117083013","liked":true,"admin":true},"user":{"country":"es","locale":"en_US","age":{"min":21}},"user_id":"342"}"