Я пытаюсь опубликовать checkin, используя API-интерфейс Facebook Graph. Я прошел через Facebook API documentation (checkins), а также получил разрешение publish_checkins
. Однако моя регистрация не публикуется. Могу ли я узнать, что-то не так, или я что-то пропустил? Спасибо за ваше время :)Facebook - Публикация проверок с использованием SDK SDK/JavaScript SDK SDK/JavaScript
fbmain.php
$user = $facebook->getUser();
$access_token = $facebook->getAccessToken();
// Session based API call
if ($user) {
try {
$me = $facebook->api('/me');
if($me)
{
$_SESSION['fbID'] = $me['id'];
$uid = $me['id'];
}
} catch (FacebookApiException $e) {
error_log($e);
}
}
else {
echo "<script type='text/javascript'>top.location.href='$loginUrl';</script>";
exit;
}
$loginUrl = $facebook->getLoginUrl(
array(
'redirect_uri' => $redirect_url,
'scope' => status_update, publish_stream, publish_checkins,
user_checkins, user_location, user_status'
)
);
main.php - Использование PHP SDK (Wrong SDK, используемый в этом примере, следует использовать JavaScript SDK вместо)
<?php
include_once "fbmain.php";
if (!isset($_POST['latitude']) && !isset($_POST['longitude']))
{
?>
<html>
<head>
//ajax POST of latitude and longitude
</head>
<body>
<input type="button" value="Check In!" onclick="checkin();"/></span>
</body>
</html>
<?php
}
else
{
?>
<script type="text/javascript">
function checkin()
{
try
{
$tryCatch = $facebook->api('/'.$uid.'/checkins', 'POST', array(
'access_token' => $facebook->getAccessToken(),
'place' => '165122993538708',
'message' =>'MESSAGE_HERE',
'coordinates' => json_encode(array(
'latitude' => '1.3019399200902',
'longitude' => '103.84067653695'
))
));
}
catch(FacebookApiException $e)
{
$tryCatch=$e->getMessage();
}
return $tryCatch;
}
</script>
<?php
}
?>
Вопрос решен - Принять во внимание при публикации регистрации
- Удостоверяются, что
publish_checkins
разрешено. - Должен использовать
json_encode()
для кодирования параметраcoordinates
для PHP SDK. place
иcoordinates
параметры являются обязательными.- Повторная аутентификация требуется, если вы только что добавили
publish_checkins
разрешение на существующий список разрешенных разрешений.
Какую ошибку вы получаете? Получаете ли вы почтовый идентификатор? если это так, то появляется в журнале активности пользователя? – Igy
@Igy К сожалению, я не получаю никаких ошибок от php_error.log. Я добавил try catch внутри функции, но я также не получаю исключения. Однако что-то странное привлекло мое внимание, когда я сделал «alert» ($facebook-> getAccessToken()?>); это вызвало «неопределенное». Могу ли я узнать, как проверить идентификатор сообщения и какой журнал активности пользователя? Я только начал разрабатывать приложение Facebook месяц назад, был бы очень признателен, если бы вы руководили мной. Спасибо :) – Zany
Когда вы совершаете этот вызов API, должен быть обратный вызов с ошибкой или идентификатор сообщения созданного вами нового сообщения. – Igy