【发布时间】:2024-04-22 22:20:02
【问题描述】:
它是一个显示页面应用程序和
应用程序通过signed_request检查用户是否喜欢粉丝页面,如果不是,它会显示一个像我们一样的图像,否则它会向粉丝显示内容。
当有人访问粉丝页面时,这可以正常工作,即应用程序作为标签在粉丝页面中运行。例如http://www.facebook.com/myfanpage?sk=app_xxxxxxxxxxxxxx
如果有人直接访问应用程序,例如http://apps.facebook.com/myappname 它总是显示像我们一样的图像,无论用户是否已经喜欢。
有没有办法检查应用程序是如何被访问的?直接还是作为粉丝页面中的标签?我不能在 javascript 中使用'top.location.href',它返回 null 我猜是因为跨域的明显原因,即应用程序是从其他域而不是在 facebook 上运行的。
问候
【问题讨论】:
-
签名请求是在页面选项卡上的 POST 请求中发送的,因此如果您的应用程序作为画布应用程序加载(顺便说一句,您为什么这样做?),您可以很容易地检测到这一点在页面标签上,您需要获得用户的许可才能查看他们的喜欢,除非他们的喜欢是公开的
-
:) 是的,如果我有用户通过页面选项卡来的签名请求,很简单。谢谢
-
@Igy 我刚刚检查过,如果你直接访问,你会得到签名的请求,而不是像信息这样的页面。
if($signed_request = parsePageSignedRequest()) { if($signed_request->page->liked) {
标签: php facebook facebook-graph-api