Не можете зарегистрироваться на Facebook Места по почте в API? - PullRequest
6 голосов
/ 15 января 2011

Я пытаюсь создать приложение, в котором мой зарегистрированный пользователь сможет регистрироваться в местах на Facebook. Я, однако, по какой-то причине не могу заставить эту работу. Я предположил, что это возможно с 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 ]

10 голосов
/ 20 мая 2011

Ваш ответ почти правильный.

$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 голос
/ 24 января 2013

Просто обновление от Facebook:

ПРИМЕЧАНИЕ. Публикация объекта Checkin не рекомендуется в пользу создания сообщения с указанным местоположением.

Вы можете узнать, как создать сообщение с указанием местоположения (или идентификатора места в Facebook) здесь: http://developers.facebook.com/docs/reference/api/user/#posts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...