检查是不是仍安装页面选项卡应用程序
Posted
技术标签:
【中文标题】检查是不是仍安装页面选项卡应用程序【英文标题】:Check if page tab app is still installed检查是否仍安装页面选项卡应用程序 【发布时间】:2012-01-02 04:01:51 【问题描述】:使用图形 api 检查标签应用程序是否仍安装在特定粉丝页面上的最佳方法是什么?
我能想到的唯一方法是使用https://graph.facebook.com/page_id/tabs/app_id,如果已安装,这将返回给定选项卡的数据,但似乎需要 access_token。要使用这种方法,我认为,我不仅需要向用户询问 manage_pages 权限,还需要询问 offline_access,然后我可以存储 page_access_token 并能够在以后使用它来检查应用程序是否已经删除?
这似乎很奇怪,这不仅仅是公共信息,考虑到没有登录 Facebook,你可以看到安装在粉丝页面上的所有标签?
这是一个关于取消授权回调的类似问题: http://facebook.***.com/questions/8000163/deauthorize-page-tab-notification
谢谢
【问题讨论】:
【参考方案1】:根据我的测试和 Facebook 的文档,您不需要用户的访问令牌来检查是否安装了应用程序(尽管您可以使用它)。我发现以您的应用程序登录更容易。这是 facebook 的 link,它向您展示了如何操作。查看名为“应用登录”的部分。
简而言之,你会在 php 中获得一个类似这样的应用访问令牌:
$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 解码了该文件的内容,然后检查该应用程序 ID 是否存在于页面上。
if(!empty($app_check->data))
echo "APP 已安装"; 别的 echo "APP 未安装";
希望对你有帮助!
【讨论】:
这种技术的唯一问题是如果 Facebook 页面是私有的。在这种情况下,/page_id/tabs/app_id?access_token=app_access_token 将始终返回空。您将需要具有 manage_pages 权限的用户访问令牌或页面的访问令牌 这是一个很好的观点。无论好坏,我只需要访问公共页面。以上是关于检查是不是仍安装页面选项卡应用程序的主要内容,如果未能解决你的问题,请参考以下文章