我目前正在使用php sdk和js sdk开发一个facebook应用程序。 (我需要他们两个)
当用户尚未授权应用程序并加载画布页面(https://apps.facebook.com/app_name/)时,没有任何反应,他只会获得一个空白页面,其中有一个Facebook栏位于顶部。 但是,如果他加载应用程序的直接URL(https://my_app.mydomain.com),它可以正常工作,并重定向到OAuth对话框。如果他授权该应用程序,则会将其重定向到https://apps.facebook.com/app_name/并正确加载iframe。
如果用户已经授权了应用程序,则两个链接都在运行(https://apps.facebook.com/app_name/和https://my_app.mydomain.com)。
这是我的身份验证码:
<?php
require 'php-sdk/facebook.php';
$facebook = new Facebook(array(
'appId' => '327991330620101',
'secret' => '79asecretcc4300',
'cookie' => true
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$params = array(
'scope' => 'publish_stream',
'redirect_uri' => 'https://apps.facebook.com/quiet_quies/'
);
$loginUrl = $facebook->getLoginUrl($params);
header('Location: ' . $loginUrl);
}
有人对此有所了解吗?这真让我疯了...... 谢谢你的帮助。
答案 0 :(得分:3)
是的,@ CBroe是对的,在您的php
代码中尝试用
header('Location: ' . $loginUrl);
行
echo "<script language=javascript>top.location.href ='".$loginUrl."'</script>";
它应该适用。