Facebook 选项卡内子页面上的 SignedRequest 信息
我有一个 Facebook 页面,其中添加了 Facebook (iFrame) 选项卡。使用 Facebook PHP SDK,我正在检索 SignedRequest 信息。我使用此信息来检查用户是否喜欢该 Facebook 页面。
在主页上,这工作正常,我检索 SignedRequest 信息中的“页面”数组,但是当我单击子页面(使用同一子域上的直接 url)时,我无法再访问此信息。
如何在 iFrame 选项卡内的子页面上检索此信息?
I've got a Facebook Page where I've added a Facebook (iFrame) tab. With the Facebook PHP SDK I'm retrieving the SignedRequest information. I'm using this information to check if a user has liked the Facebook Page.
On the main page this works fine and I retrieve the 'page' array within the SignedRequest info, but when I click on a subpage (using a direct url on the same subdomain) I can't access this information anymore.
How can I retrieve this information on a subpage within the iFrame tab?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看来您只有在第一次加载选项卡时才会收到签名的请求。
最好的解决方案是将“喜欢”的状态保存到会话中,并在其他子页面中使用它。
As it seems you only get the signed request when the tab loads the first time.
Best solution would be saving the status of
liked
into a session and use this in the other subpages.仅当 facebook 加载您网站的内容时(基于您在应用程序配置中提供的 url),您才会获得signed_request 对象。现在,您有责任跟踪该 iframe 内的任何链接或重定向。您可以通过多种方式做到这一点。 1) 在您的服务器上运行会话。 2)放下一块饼干并注意观察。 3)在查询字符串上放一些东西(但这是可以破解的)。
You only get the signed_request object when facebook loads in the content of your website (based upon the url you provided in the app config). Any linking or redirection within that iframe is now your responsiblity to track. You can do it a variety of ways. 1) Run session on your servers. 2) Drop a cookie and watch for that. 3) Put something on the querystring (but this is hackable).
嘿伙计们,经过几天的努力解决这个问题,我刚刚找到了一个完美的解决方案,所以我决定分享它。
它是 DMCS 提出的解决方案的一部分 - 会话变量。
首先,您必须将所有签名的请求信息存储到 e 会话变量中,如下所示:
然后您可以在稍后的阶段访问所有信息(例如选项卡子页面)。只需执行 print_r($signedRequest) 即可检查如何访问您需要的信息。例如,要检查用户是否喜欢该页面,只需执行以下操作:
这里重要的是将整个 $signedRequest 存储在会话变量中。我首先尝试将我需要的信息存储在会话变量中,但这不起作用。我不知道为什么。
希望它对某人有帮助。
Hey guys I just found a solution that works flawlessly after days of struggle with this problem so I decided to share it.
It's part of the solution proposed by DMCS - session variables.
First you have to store ALL the signed request information into e session variable like this:
Then you can access all the information on a later stage (i.e. Tab Subpage for example). Just do print_r($signedRequest) to check how to access the information that you need. For example to check if a user liked the page just do:
The important thing here is to store the whole $signedRequest in a session variable. I first tried to store just the information that I needed in a session variable but that won't work. I don't know why.
Hope it helps somebody.