如何确定应用程序是否已获得粉丝页面的授权

时间:2011-08-27 03:06:19

标签: facebook facebook-graph-api facebook-c#-sdk facebook-fql

如果以前曾经问过这个问题,请原谅我,但我无法找到一个简单问题的答案。我有一个授权给用户的应用程序&用户的粉丝页面来自我构建的网站的流程。过程是这样的:

访问网站 - >授权网站查看粉丝页面列表 - >选择粉丝专页以将应用安装到 - >将应用授权给用户帐户 - >将应用程序授权给粉丝专页

我已经完成了所有工作(一个过程,让我告诉你),一切都按预期运行。我正在使用管理界面来管理应用程序,该应用程序不在Canvas应用程序位置,而是在网站本身。我还没有找到一种方法来确定是否安装了该应用程序。似乎Graph API / FQL不支持此功能。

我的两个问题是:

  • 我有用户ID&粉丝页面ID,但我无法弄清楚所述粉丝页面是否已授权我的应用程序。根据此答案,将确定是否显示“安装此应用程序”面板或“管理”面板。

  • 我读过最好的方法是在最初授权应用程序时存储用户ID,但在应用程序获得授权后,用户将被发送到粉丝页面的墙壁,我无法弄清楚如何通知我的iframe应用。

2 个答案:

答案 0 :(得分:1)

[编辑]我误解了你的问题,并认为你的实现比你似乎没有:如果你有manage_pages用户的权限,你可以获得每个页面的页面访问令牌,并访问当前作为该页面上的标签安装的应用列表 - 说明位于https://developers.facebook.com/docs/reference/api/page/#tabs [/编辑]

对您应用的“页面标签页面”发出的每个请求都将包含signed_request参数。 在https://developers.facebook.com/docs/authentication/signed_request/解释了对其进行解码的方法 - 当您的应用加载到页面标签上时,您将获得“页面”参数。

所以:

  1. 第一次将您的应用提供的标签加载到新页面时,您可以从已签名的请求中检测到网页ID。

  2. 此回调还会告诉您当前正在查看页面标签的用户是否是该页面的管理员(如果适用,这对您自己的编辑界面非常有用)

  3. 如果您还没有应用程序用户告诉您管理哪些页面的界面,您可以通过访问其用户对象上的“accounts”属性获取用户管理的所有页面的列表({获得/me/accounts权限

  4. 后,在图谱API中{1}}

答案 1 :(得分:0)

您可以在网站上的数据库中跟踪谁拥有授权应用程序吗?

即。从您的应用程序调用您的网站服务器上的脚本,该脚本返回用户是否已授权该应用程序。