2011-05-27 6 views
0

Y at-il un moyen de vérifier si un utilisateur a visité un lieu particulier à un moment donné dans le passé?Facebook Open Graph - Voyez si l'utilisateur a été enregistré dans un lieu particulier il y a un certain temps

avec php sdk, je peux obtenir une information de lieu comme:

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

cela me donne le nombre de checkin.

pour obtenir les checkins récents d'un utilisateur que je pouvais faire

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

cela me donne le dernier checkin par nom

mais est-il un moyen de vérifier si un utilisateur vérifié dans un endroit spécial? /search?type=checkin ne me donne qu'un très petit nombre de checkins récents et si un checkin est plus vieux que ~ 2-3 semaines, il n'apparaît même pas.

merci pour toute aide.

Répondre

0

Effectuez un FQL query par rapport au tableau checkin. Quelque chose comme:

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

est-il un moyen de le faire avec la nouvelle version sdk? essayé quelque chose comme ça sans réponse: '$ facebook-> api ('fql.query? query = xyz');' – choise

+0

Assurez-vous que la requête que vous exécutez retournera un résultat en testant la même requête sur https: // développeurs .facebook.com/docs/reference/rest/fql.query /. En outre, essayez d'abord une requête plus simple. – bkaid

+1

okay, ne peut pas obtenir ce travail avec le php-sdk. J'ai utilisé file_get_contents maintenant avec le access_token du sdk. semble fonctionner, merci !. Je suis reconnaissant pour chaque indice pour obtenir ce travail directement avec le SDK – choise

1

Voici comment faire la réponse bkaid a travaillé avec le SDK PHP (see on github).

D'abord, vous devez vérifier si l'utilisateur est connecté ou non:

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

Vous render le lien pour lui faire connecter s'il n'est pas. Et s'il l'est, vous pouvez appeler l'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, 
    )); 
} 

Hope that helps!

Questions connexes