问题 Facebook app_data


有人可以向我解释如何使用Facebook app_data这是签名请求的一部分吗?

http://developers.facebook.com/docs/authentication/signed_request/

文件含糊不清。我无法弄清楚如何实际使用app_data字段。我希望能够在将应用程序数据添加到页面时将其传递给应用程序,以便显示在其上的内容与Facebook页面相关。

例如,我希望我的网站上的用户个人资料只显示在该用户的Facebook页面上。为此,我想在用户将应用添加到其页面时将用户ID发送到fb签名请求。然后,只要访问页面,我将拉取应用程序数据并运行一些PHP以显示正确的配置文件。

我可以使用app_data执行此操作,还是这不可能?


7463
2017-12-27 15:59


起源

+1好问题。您现在也可以发表评论,如果需要,可以要求澄清我的答案。 - bool.dev


答案:


从您引用的文档中

应用数据是

包含查询字符串参数内容的JSON字符串,也称为app_data。 通常在应用程序构建链接以将一些数据传递给自身时指定。 仅当您的应用是在页面标签中加载的iframe时才可用。

所以app数据很有用 只要 当你的申请有 生成一个链接 某些用户将在某个Facebook页面上点击并关注您的应用。

如果用户是 直接访问某个页面(和应用程序选项卡),那么你将无法获得app_data字段。

一旦用户在他们的任何一个页面上安装了您的应用程序(并且已经给予您的应用程序最低权限),您始终拥有 page_id 和 user_id 中的字段 signed_request Facebook将发送到你的应用程序,两者都在画布应用程序(没有 page_id 字段)和页面选项卡应用程序。

对于你想做的事,你可以阅读 signed_request 然后找出答案 page_id 并相应地显示数据,您甚至不必使用user_id。

希望这能回答你的问题。如果需要,请要求澄清。


10
2017-12-27 17:46



谢谢,我想我只需要使用页面ID。我需要在我的内容和Facebook页面之间建立关系,并且希望我可以使用app_data来为该页面上安装的应用程序提供app_data,我会为附加了app_data的每个用户提供该链接。 - user975044
欢迎您,您只需要存储与page_ids相关的数据,这样您就可以建立关系 page_id(Facebook页面)和内容 。没有什么可担心的。 - bool.dev