Facebook Open Graph-查看用户是否在某个特定时间登录到某个特定位置


Facebook Open Graph - See if User checked into a particular place some time

有没有办法检查用户是否在过去的任何时候入住了特定的地方?

使用php-sdk,我可以获得如下位置信息:

$place = $facebook->api('/placeIDhere');
var_dump($place['checkins'])

这给了我办理登机手续的次数。

为了获取用户最近的签入信息,我可以进行

$usercheckins = $facebook->api('/search?type=checkin');
var_dump($usercheckins[0]['place']['name']);

这是我最后一次以的名字办理登机手续

但有没有办法检查用户是否入住了一个特殊的地方?/search?type=checkin只给我一小部分最近的签入,如果签入时间超过2-3周,它甚至不会出现。

谢谢你的帮助。

以下是如何使bkaid答案与PHP SDK一起使用(请参阅github)。

首先,你必须检查用户是否登录:

require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));
$user = $facebook->getUser();
if ($user) {
    try {
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        $user = null;
    }
}

如果他没有登录,您可以提供链接使他登录。如果他是,你可以拨打API电话:

if (!$user) {
    echo '<a href="' . $facebook->getLoginUrl() . '">Login with Facebook</a>';
} else {
    $fql = "SELECT post_id, message FROM checkin
            WHERE author_uid = me() AND page_id = THE_PAGE_ID";
    $response = $facebook->api(array(
        'method' => 'fql.query',
        'query' => $fql,
    ));
}

希望能有所帮助!

对签入表执行FQL查询。类似于:

    SELECT coords,tagged_uids,author_uid,page_id,app_id,post_id,timestamp,message 
    FROM checkin 
    WHERE author_uid = me() and page_id = 'placeID'