Facebook Open Graph - 查看用户是否在某个时间签到特定地点

时间:2011-05-27 14:29:19

标签: php facebook opengraph facebook-php-sdk checkin

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

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

感谢所有人的帮助。

2 个答案:

答案 0 :(得分:1)

以下是如何使用PHP SDK(see on github)来解决bkaid答案。

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

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

希望有所帮助!

答案 1 :(得分:0)

FQL query表格执行checkin。类似的东西:

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