Php 如何检查用户是否安装了该应用程序?
我在facebook上有一个应用程序,这是一种用户之间的竞争。每个用户获得积分,积分最多的用户获胜 我将用户的ID保存在数据库的一个表中。当用户进入应用程序时,会有一个脚本检查他是否已经在表中,如果没有,它会将用户id添加到表中 然后,我有一个页面,显示所有用户以及他们的分数。我通过GraphAPI通过他的ID获取用户名,然后将其显示在一个漂亮的表上 唯一的问题是:当使用该应用程序的用户从facebook上安装的应用程序中删除该应用程序时,我无法再获得他的名字,并且我得到了一个未捕获的OAuth异常Php 如何检查用户是否安装了该应用程序?,php,facebook,Php,Facebook,我在facebook上有一个应用程序,这是一种用户之间的竞争。每个用户获得积分,积分最多的用户获胜 我将用户的ID保存在数据库的一个表中。当用户进入应用程序时,会有一个脚本检查他是否已经在表中,如果没有,它会将用户id添加到表中 然后,我有一个页面,显示所有用户以及他们的分数。我通过GraphAPI通过他的ID获取用户名,然后将其显示在一个漂亮的表上 唯一的问题是:当使用该应用程序的用户从facebook上安装的应用程序中删除该应用程序时,我无法再获得他的名字,并且我得到了一个未捕获的OAuth
如何检查用户是否安装了该应用程序,以便仅当该应用程序当前安装在其facebook上时,我才能显示其姓名?基本上,以下是您需要执行的操作
<?php
include_once("facebook.php");
$facebook = new Facebook(array(
'appId' => YOUR_APP_ID,
'secret' => YOUR_APP_SECRET
));
$user = $facebook->getUser();
try {
$user_profile = $facebook->api('/me');
} catch(FacebookApiException $e) {
$user = null;
}
if($user) {
// authenticated user
$name = $user_profile['name'];
}
我建议检查此客户端
然后,当用户返回时,您可以执行此操作以查看权限是否仍然可用,如果没有,请再次请求权限:
FB.getLoginStatus(function(response){
if(response.status == 'connected'){
appisinstalled-actonthis();
}else{
// request permissions
FB.login(function(response){
if(response.status == 'connected'){
appisinstalled-actonthis();
}else{
handlethecancelpermissions();
}
});
}
});
在安装的应用程序中,您可以在该函数中添加名称和/或配置文件
就我的两分钱 使用JSSDK,您可以访问FQL查询:“从user WHERE uid=me()中选择is_app_user”。这可能也适用于其他SDK。您需要任何权限才能使用api获取用户名吗?不过,我相信您可以直接从Graph api获取用户名,如下所示:$user\u profile=json\u decode(file\u get\u contents('shttps://graph.facebook.com/UID')); $name=$user\u profile->name代码>