0

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

使用 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 周,它甚至不会出现。

感谢所有帮助。

4

2 回答 2

1

以下是如何使 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,
    ));
}

希望有帮助!

于 2011-05-28T03:41:32.747 回答
0

签入表执行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'
于 2011-05-27T16:22:14.217 回答