У меня есть простое приложение, которое использовалось для работы в старом API. Это приложение iFrame, и я не могу получить сеанс пользователя с новым API независимо от того, что я пытаюсь. Вот код, который у меня есть сейчас:
<?php
error_reporting(E_ALL);
require 'facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxxx',
'secret' => 'xxxx',
'cookie' => true,
));
$session = $facebook->getSession();
if ( !$session )
{
//echo "Failed. No session.<br />";
$url = $facebook->getLoginUrl(array(
'canvas' => 1,
'fbconnect' => 0,
'next'=>'http://www.facebook.com',
'cancel_url' => 'http://www.facebook.com'
));
//echo "<script type='text/javascript'>top.location.href = '$url';</script>";
echo "<a href='".$url."' target='_blank'>First time using this App? Click here to connect it to your Facebook.</a>";
}
else {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
$updated = date("l, F j, Y", strtotime($me['updated_time']));
echo "Hello " . $me['name'] . "<br />";
echo "You last updated your profile on " . $updated;
} catch (FacebookApiException $e) {
echo "Error:" . print_r($e, true);
}
}
Независимо от того, что я пытаюсь, $session никогда не возвращается (после нажатия ссылки). Я использую правильный appID/secret/facebook.php, но он всегда попадает в путь! $Session, если путь. Что я делаю неправильно?
Версия PHP API, которую я использую, которую я загрузил несколько дней назад, не имеет $facebook- > getSession()
Итак, в зависимости от используемой вами версии (предполагая, что старые версии имеют getSession, я не знаю, что я только начал использовать API), у него может не быть getSession больше.
В примере, который появился с api, использовался - > getUser, чтобы попытаться получить объект пользователя и проверить, действительно ли это, а затем попытаться получить профиль пользователей с помощью информации, чтобы проверить правильность подключения.
Надеюсь, что это поможет.
Джейсон Пеник