Так как я действительно не понимаю $ user = $ facebook-> getUser(); (он возвращает NULL, даже если пользователь вошел в систему ...) Я пытаюсь использовать этот код. Проблема в том, что он дает «Активный токен доступа должен использоваться для запроса информации о текущем пользователе». OAuthException, и если я добавлю код переадресации на вход в раздел Catch, он попадет в бесконечный цикл перенаправления ... Может ли кто-нибудь мне помочь?Facebook PHP SDK: api ('/ me') странное поведение
Спасибо! :)
try {
$user_profile = $facebook->api('/me');
$scope = 'publish_stream,user_photos';
$scope_params = explode(',',$scope);
$permissions = $facebook->api("/me/permissions");
if(array_key_exists('publish_stream', $permissions['data'][0]) && array_key_exists('user_photos', $permissions['data'][0])) {
// facebook logic
}else {
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Redirect</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<script language=javascript>window.open('<?php echo $loginUrl ?>', '_parent', '')</script>
</head>
<body>
Redirecting...
</body>
</html>
<?php
exit;
}
}catch (FacebookApiException $e) {
echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
}
Я помню, что у меня была проблема с facebook, которая также пыталась аутентифицировать пользователя каждый раз, когда я хотел перенаправить (включая перенаправление после аутентификации пользователя). Вот заголовок, который нам нужно было добавить, чтобы исправить нашу проблему: 'header ('P3P: CP =" CAO PSA OUR "');' – Nightwolf
, где мне нужно точно добавить этот код? (если я прав, это исправление заголовка для цикла переадресации IE, теперь я нахожусь в FireFox) – VORiAND
Это заголовок, поэтому это должно быть на каждой странице до начала любого вывода. Это должно помешать ему потерять аутентификацию или переменные. – Nightwolf