如何检查用户是否安装了应用程序


How to check if a user installed the app?

我在facebook上有一个应用,这是一种用户之间的竞争。每个用户获得积分,得分最多的人获胜。

我将用户id保存在数据库中的一个表中。当用户进入应用程序时,有一个脚本检查他是否已经在表中,如果没有,它将用户id添加到表中。

然后,我有一个页面,显示所有的用户和他们有多少点。我通过图形api通过他的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'];
}

为当前登录的用户发出API请求,如果失败,则捕获异常并将$user变量设置为null。然后你可以做一个简单的检查,看看$user是否存在。

我建议检查一下这个客户端。

当用户返回时,你可以执行这个命令来查看权限是否仍然可用,如果没有,再请求一次:

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();
                }
            });
        }
    });

在appisinstalled-actonthis函数中,您可以添加名称和/或配置文件pic

只是我的两分钱!