无法通过邮寄方式登录到Facebook Places到api?

时间:2011-01-15 01:46:00

标签: php facebook facebook-graph-api

我正在尝试构建一个应用程序,让我的注册用户可以登录Facebook Places上的位置。然而,由于某种原因,我似乎无法使这项工作。我认为这是可能的Api因为已经添加了写入功能,但我在网上找不到清晰的解释。在我要求用户发布签名和user_checkins的许可之后,这就是我目前所拥有的。

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

?>

当我将'checkins'更改为'feed'时代码有效。我的代码是否有问题,或者我尝试做一些不可能的事情(或者做错了方法)。

任何帮助都会受到高度赞赏,因为我已经花了相当多的时间来解决这个问题,但我似乎无法让它发挥作用。

致以最诚挚的问候,

马库斯乔

2 个答案:

答案 0 :(得分:10)

你的答案几乎是正确的。

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

请注意,对于坐标,您必须提供json_encode变量。 希望有所帮助。

答案 1 :(得分:1)

来自Facebook的更新:

  

注意:不推荐发布Checkin对象,而是支持创建附加位置的帖子。

您可以在此处查看如何使用位置(或Facebook地方ID)创建帖子: http://developers.facebook.com/docs/reference/api/user/#posts