我有以下问题:
我正在尝试为Facebook做第一个应用程序,在Facebook连接和安装应用程序之后不会自动将我重定向到网址但在Facebook之外。这只是第一次发生,一旦它被安装,如果网址被充电并留在Facebook内。
有任何想法要解决它吗?
我不知道问题是代码还是应用程序配置:(
// PHP SDK v.3.0.0 de Facebook
require 'includes/facebook.php';
$facebook = new Facebook(array(
'appId' => '*******',
'secret' => '*************',
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'read_stream,publish_stream,user_about_me,user_likes,email,user_status'
));
}
if (!$user) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>php-sdk 3.0.0</title>
<style typ="text/css">
html, body { width: 520px;}
</style>
</head>
<body>
<h1>php-sdk</h1>
<h3>PHP Session</h3>
<?php foreach($_SESSION as $key=>$value){
echo '<strong>' . $key . '</strong> => ' . $value . '<br />';
}
?>
<h3>Tu</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Tus datos (/me)</h3>
<?php foreach($user_profile as $key=>$value){
echo '<strong>' . $key . '</strong> => ' . $value . '<br />';
}
?>
</body>
</html>
答案 0 :(得分:0)
您未在redirect_uri
方法中指定getLoginUrl
,因此SDK会根据您当前的网址为您构建一个redirect_uri
。
所以您只需将画布网址设置为$loginUrl = $facebook->getLoginUrl(array(
'scope' => 'read_stream,publish_stream,user_about_me,user_likes,email,user_status',
'redirect_uri' => 'CANVAS_URL'
));
:
$user_profile
P.S:$me
和{{1}}保持相同的值,只使用其中一个而不是进行两次Graph API调用。