У меня была точно такая же проблема некоторое время назад.Вот небольшой взлом:
if(!$me) {
$url = "https://graph.facebook.com/oauth/authorize?"
."client_id=YOUR_APP_ID&"
."redirect_uri=http://apps.facebook.com/APP_SLUG/&"
."scope=user_photos,publish_stream";
echo "<script language=javascript>window.open('$url', '_parent', '')</script>";
} else {
your code...
}
Как это выглядит в моем коде (немного грязно, у меня был крайний срок):
require_once 'facebook-php-sdk/src/facebook.php';
$appid = '';
$facebook = new Facebook(array(
'appId' => $appid,
'secret' => '',
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
if(!$me) {
// here we redirect for authentication:
// This is the code you should be looking at:
$url = "https://graph.facebook.com/oauth/authorize?"
."client_id=$appid&"
."redirect_uri=http://apps.facebook.com/APP_SLUG/&"
."scope=user_photos,publish_stream";
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Göngum til góðs</title>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<script language=javascript>window.open('<?php echo $url ?>', '_parent', '')</script>
</head>
<body>
Loading...
</body>
</html>
<?php
exit;
} else {
your code ...
}
Простое перенаправление заголовка не будет работать, так какбудет перенаправлять только ваш iframe.Javascript необходим для доступа к окну _parent.
Редактировать
Имейте в виду, что есть правильный способ сделать это (см. Ответ ниже), и я не рекомендую делать это.Но эй, что когда-либо плавает на твоей лодке ...