2011-01-15 5 views
6

Sto cercando di creare un'app in cui consenta al mio utente registrato di accedere ai luoghi su Facebook. Tuttavia, per qualche motivo, non riesco a farlo funzionare. Ho pensato che questo fosse possibile con l'Api poiché è stata aggiunta funzionalità di scrittura, ma non sono riuscito a trovare una spiegazione chiara sul web. questo è ciò che attualmente ho, dopo che ho chiesto all'utente il permesso di pubblicare checkin e user_checkins.Non riesci a registrare su Facebook Places per posta su api?

<?php 

require("src/facebook.php"); 


$facebook = new Facebook(array(
'appId' => 'xxxxxxxxx', 
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
'cookie' => true 
)); 



# see if active session 
$session = $facebook->getSession(); 

if(!empty($session)) { 

try{ 
$uid = $facebook->getUser(); 


$api_call = array(
'method' => 'users.hasAppPermission', 
'uid' => $uid, 
'ext_perm' => 'publish_checkins' 
); 
$can_post = $facebook->api($api_call); 
if($can_post){ 



$facebook->api('/'.$uid.'/checkins', 'POST', array(
    'access_token' => $facebook->getAccessToken(), 
    'place' => 'place_id', 
    'message' =>'I went to placename today', 

    'picture' => 'http://www.place.com/logo.jpg', 
    'coordinates' => array(
    'latitude' => 'lattiude', 
    'longitude' => 'lattitude', 
    'tags' => $uid, 
    ) 
) 




); 
echo 'You were checked in'; 
} else { 
die('Permissions required!'); 
} 
} catch (Exception $e){} 
    } else { 
# There's no active session,generate one 
$login_url = $facebook->getLoginUrl(); 
header("Location: ".$login_url); 
} 

?> 

Il codice funziona quando lo cambio 'assegni' in 'feed'. C'è qualcosa di sbagliato nel mio codice o sto cercando di fare qualcosa che non è possibile (o farlo nel modo sbagliato).

Qualsiasi aiuto sarà molto apprezzato poiché ho già trascorso un tempo considerevole a cercare di risolvere il problema, ma non riesco a farlo funzionare.

Con i migliori saluti,

Marcus Joe

+0

State ottenendo eventuali errori? anche se lo fai, '$ facebook-> api ("/me/checkin? access_token = YOUR_ACCESS_TOKEN ")' cosa hai ottenuto? – ifaour

+0

Strano, la stampa mi restituisce una matrice vuota. BTW Non ho altri errori, semplicemente non mostra "hai fatto il check-in" mentre lo fa quando lo uso per pubblicare i feed. –

+0

puoi aggiornare al nuovo PHP-SDK? – ifaour

risposta

10

La tua risposta è quasi corretta.

$facebook->api('/'.$uid.'/checkins', 'POST', array(
'access_token' => $facebook->getAccessToken(), 
'place' => 'place_id', 
'message' =>'I went to placename today', 
'picture' => 'http://www.place.com/logo.jpg', 
'coordinates' => json_encode(array(
    'latitude' => 'lattiude', 
    'longitude' => 'lattitude', 
    'tags' => $uid), 
) 
) 

Si noti che per le coordinate è necessario fornire una variabile json_encode. Spero che aiuti qualcuno.

+0

Hai ragione, ora ricordo. Grazie. –

1

Solo un aggiornamento da Facebook:

NOTA: La pubblicazione di un oggetto di arrivo è deprecato in favore della creazione di un post con una posizione allegata.

È possibile controllare il modo di creare un post con una posizione (o un Facebook luogo id) qui: http://developers.facebook.com/docs/reference/api/user/#posts

Problemi correlati