Я хочу прочитать все дни рождения друзей у текущего пользователя.Я использую новый API Graph Facebook.Я запрашиваю авторизацию разрешений (read_friendslist
и friends_birthday
) на основе примеров и php-sdk на Facebook * *1003*.Для чтения списка друзей и сведений о пользователе я использовал API Graph с Facebook PHP SDK.
Следующие фрагменты кода представляют собой краткий самостоятельный пример моего подхода.Если я пытаюсь использовать мое приложение, оно запрашивает логин, затем запрашивает разрешения, а затем не может распечатать всех моих друзей из-за того, что сеанс недоступен.Что здесь не так?
Во-первых, birthday.php
, который используется следующим index.php
, я удалил некоторый шаблонный код или код, который, по-моему, не вызывает эту проблему (определяется [...]).Вы можете найти полный код в конце этого вопроса.
<?php
function get_birthday_of_friends() {
$fbconfig['appid' ] = "MY_APP_ID";
$fbconfig['secret'] = "MY_APP_SECRET";
try{
include_once "facebook/src/facebook.php";
}
catch(Exception $o){
// [...] log error
}
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
$session = $facebook->getSession();
$fbme = null;
// Session based graph API call.
if ($session) {
// [...] return birthdays
} else {
echo "No session found";
}
}
?>
Требуемый lib.php
идентичен примеру insights .
<?php
// [...] Include and define app-id etc.
function get_access_token($base_url) {
if (isset($_REQUEST['access_token'])) {
return $_REQUEST['access_token'];
}
$params = array();
$params['client_id'] = APP_ID;
$params['redirect_uri'] = $base_url;
if (!isset($_REQUEST['code'])) {
$params['scope'] = 'read_friendlists, friends_birthday';
$url = FacebookMethods::getGraphApiUrl('oauth/authorize', $params);
throw new RedirectionException($url);
} else {
$params['client_secret'] = APP_SECRET;
$params['code'] = $_REQUEST['code'];
$url = FacebookMethods::getGraphApiUrl('oauth/access_token');
$response = FacebookMethods::fetchUrl($url, $params);
$response = strstr($response, 'access_token=');
$result = substr($response, 13);
$pos = strpos($result, '&');
if ($pos !== false) {
$result = substr($result, 0, $pos);
}
return $result;
}
}
// [...] Call get_access_token() and get_birthday_of_friends()!
?>
CanВы помогаете мне с этим?Я добавил весь исходный код на pastebin.com, если это поможет вам определить мою проблему.Исходный код на pastebin.com для " index.php " и " birthday.php ".
Заранее спасибо!