Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook应用重定向_Php_Facebook - Fatal编程技术网

Php Facebook应用重定向

Php Facebook应用重定向,php,facebook,Php,Facebook,我制作了一个facebook应用程序,当从apps.facebook.com/myapp打开时,它完美地指向我的域的index.php,可以在facebook应用程序窗口中看到,但当我尝试将其重定向到我的注册页面时,问题出现了,它被重定向到我的域,我希望所有页面都能在facebook应用程序窗口中查看。试图使用fb:redirect sdk功能,但网站表示他们将不推荐这些代码 <?php if(preg_match('/apps.facebook.com/',$_SERVER[HTTP_R

我制作了一个facebook应用程序,当从
apps.facebook.com/myapp
打开时,它完美地指向我的域的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";
}
?>

您的$auth\u url不会更改:

$canvas_page="mydomain/register.php";
echo ("<script> top.location.href='".$auth_url."'</script>");
$canvas\u page=“mydomain/register.php”;
echo(“top.location.href=”。$auth_url。””;
$auth url仍然是顶部定义的url,带有
$canvas_page='mydomain/index.php'

这与
facebook
无关。这是ABC PHP

<?php
$a = "John";
$b = "Hello " . $a;
$a = "Bob";
print $b; // returns: Hello John
$b = "\nHello " . $a;
print $b; // returns: Hello Bob
?>


Live.

你是说window.location=$auth\u url而不是top.location.href='“$auth\u url.”它们是你真正的api秘密吗?不是为什么我要提供我真正的秘密?
<?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>';
    }
?>