Facebook应用重定向
问题描述:
我做了一个Facebook应用,当从apps.facebook.com/myapp
打开完全指向我的域的index.php,并可以在Facebook应用窗口中看到,但是当我尝试将它重定向到我的注册页面时发生问题,它被重定向到我的域名,我希望所有页面都可以在Facebook应用程序窗口中查看。试图使用fb:redirect sdk函数,但网站表示他们将不赞成使用这些代码。Facebook应用重定向
<?php
if(preg_match('/apps.facebook.com/',$_SERVER[HTTP_REFERER])){
$app_id = '';
$api_key = '';
$app_secret = '';
$canvas_page = 'mydomain/index.php';
$auth_url = "http://www.facebook.com/dialog/oauth?client_id=".
$app_id."&redirect_uri=".urlencode($canvas_page)."&scope=email,user_birthday,user_interests,user_about_me";
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload,'-_', '+/')), true);
if (empty($data["user_id"])){
echo("<script> top.location.href='".$auth_url ."'</script>");
}else{
$canvas_page="mydomain/register.php";
echo ("<script> top.location.href='".$auth_url."'</script>");
}
}else{
echo "No facebook";
}
?>
代码工作完美截至echo("<script> top.location.href='" .$auth_url ."'</script>")
当$canvas_page
是Facebook应用程序开发的形式一组;但当$canvas_page
更改为我的register.php页面时,会被重定向到其他页面。我哪里错了?
在此先感谢
答
<?php
//facebook application
//set facebook application id, secret key and api key here
$fbconfig['appid' ] = "123456392899383";
$fbconfig['api' ] = "97eb2asdfasdf3f20d4421b0fe8c1b2";
$fbconfig['secret'] = "5c1d4asdfasdf71b59806b69c386b2ca";
//set application urls here
$fbconfig['baseUrl'] = "http://www.your-url.com/";
$fbconfig['appBaseUrl'] = "http://apps.facebook.com/appname/";
$uid = null; //facebook user id
try{
include_once "facebook.php";
}
catch(Exception $o){
echo '<pre>';
print_r($o);
echo '</pre>';
}
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
//Facebook Authentication part
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms' => 'email,publish_stream,status_update,user_birthday,user_location,user_work_history'
)
);
$fbme = null;
if (!$session) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
else {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
//PUT THE APPLICATION CODE HERE>
} catch (FacebookApiException $e) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
}
function d($d){
echo '<pre>';
print_r($d);
echo '</pre>';
}
?>
您可以使用此脚本正确授权应用程序定期使用它。
答
您$ auth_url不会改变:
$canvas_page="mydomain/register.php";
echo ("<script> top.location.href='".$auth_url."'</script>");
$验证网址尚处于顶部 $ canvas_page = 'MYDOMAIN/index.php文件' 中定义的URL;
答
这与facebook
无关。这是ABC PHP PHP!
<?php
$a = "John";
$b = "Hello " . $a;
$a = "Bob";
print $b; // returns: Hello John
$b = "\nHello " . $a;
print $b; // returns: Hello Bob
?>
活example。
你的意思是window.location = $ auth_url而不是 – 2011-05-30 10:45:09