检查是否仍安装了页面选项卡应用程序

时间:2011-11-20 00:37:36

标签: php facebook facebook-graph-api facebook-page facebook-apps

使用图表api检查特定粉丝页面上是否仍然安装了标签应用的最佳方法是什么?

我能想到的唯一方法是使用https://graph.facebook.com/page_id/tabs/app_id,这将返回给定选项卡的数据(如果已安装),但似乎需要access_token。要使用这种方法,我想,我需要不仅要求用户使用manage_pages权限,还要求用户知道offline_access,然后我可以存储page_access_token,以后可以使用它,仅用于检查应用程序是否已被删除去掉?

这似乎很奇怪,这不仅仅是公共信息,考虑到没有登录Facebook,你可以看到粉丝页面上安装的所有标签?

这是一个类似的问题,询问取消授权回调: http://facebook.stackoverflow.com/questions/8000163/deauthorize-page-tab-notification

由于

1 个答案:

答案 0 :(得分:8)

根据我的测试,根据Facebook的文档,您不需要用户的访问令牌来检查是否安装了应用程序(尽管您可以使用它)。我发现以您的应用程序登录更容易。这是Facebook的link向您展示的方式。请查看名为" App Login"。

的部分

简而言之,您在php中获得了类似这样的app访问令牌:

  

$ access_token = file_get_contents(https://graph.facebook.com/oauth/access_token?      CLIENT_ID = YOUR_APP_ID&安培; client_secret = YOUR_APP_SECRET&安培;      grant_type = client_credentials);

然后您可以使用该访问令牌获取数据选项卡:

  

$ app_check = json_decode(file_get_contents(" https://graph.facebook.com/"。      FACEBOOK_PAGE_ID。 " /选项卡/" 。 YOUR_APP_ID。 "?=的access_token" 。 $的access_token;));

如您所见,我json解码了该文件的内容,然后检查该页面上是否存在该app id。

  

如果(空($ app_check->!数据)){

     
    回声" APP已安装&#34 ;;        }其他{        echo" APP未安装&#34 ;;        }

  

我希望有所帮助!