2011-01-15 11 views
6

Estoy intentando crear una aplicación donde permita que mi usuario registrado pueda registrarse en lugares en Facebook Places. Sin embargo, por alguna razón, no puedo hacer que esto funcione. Supuse que esto es posible con la API, ya que se le agregó funcionalidad de escritura, pero no pude encontrar una explicación clara en la web. esto es lo que tengo actualmente, después de haberle pedido permiso al usuario para publicar checkins y para user_checkins.¿No puedes registrarte en Facebook Places por correo a 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); 
} 

?> 

El código funciona cuando lo cambio 'checkins' a 'feed'. ¿Hay algo mal con mi código o estoy tratando de hacer algo que no es posible (o hacerlo de la manera incorrecta)?

Cualquier ayuda será muy apreciada, ya que dediqué bastante tiempo tratando de solucionar esto, pero parece que no puedo hacer que funcione.

Saludos,

Marcus Joe

+0

¿Usted está consiguiendo los errores? también si haces esto, '$ facebook-> api ("/me/checkins? access_token = YOUR_ACCESS_TOKEN ")' ¿qué obtuviste? – ifaour

+0

Extraño, la impresión me devuelve una matriz vacía. Por cierto, no tengo ningún otro error, simplemente no muestra "me registré" mientras que sí lo hago cuando lo uso para publicar. –

+0

¿Puedes actualizar al nuevo PHP-SDK? – ifaour

Respuesta

10

su respuesta es casi correcta.

$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), 
) 
) 

Observe que para las coordenadas debe proporcionar una variable json_encode. Espero que ayude a alguien.

+0

Tienes razón, eso fue lo que recuerdo. Gracias. –

1

Sólo una notificación de Facebook:

NOTA: La publicación de un objeto El registro está en desuso en favor de la creación de un poste con una ubicación adjunto.

Se puede extraer de cómo crear un mensaje con una ubicación (o un Facebook Place id) aquí: http://developers.facebook.com/docs/reference/api/user/#posts

Cuestiones relacionadas