如何解决Facebook应用重定向
| 我制作了一个Facebook应用程序,当从ѭ0打开时,它完美指向我的域的index.php,并且可以在facebook应用程序窗口中看到,但是当我尝试将其重定向到我的注册页面时,会出现问题,它被重定向到我的网域,我希望所有页面都可以在Facebook应用程序窗口中查看。试图使用fb:redirect sdk函数,但网站表示他们将不赞成使用这些代码。<?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\";
}
?>
当app3ѭ是facebook应用开发形式中的一套时,该代码可以完美地工作到echo(\"<script> top.location.href=\'\" .$auth_url .\"\'</script>\")
;但是当ѭ3更改为我的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>\");
$ auth url仍然是顶部定义的url
$ canvas_page = \'mydomain / index.php \';
, 这与ѭ7无关。这是ABC PHP !!!
<?php
$a = \"John\";
$b = \"Hello \" . $a;
$a = \"Bob\";
print $b; // returns: Hello John
$b = \"\\nHello \" . $a;
print $b; // returns: Hello Bob
?>
现场示例。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。