PHP-SDK Facebook 身份验证不断重定向

标签 php facebook facebook-php-sdk

我正在尝试将 Facebook 集成到我正在开发的网络应用程序中。我从 Facebook 获得了一个 api key 和 key ,并将站点 Url 设置为 http://www.mysite.com/something/app/

以下代码使用自http://www.mysite.com/something/app/signup/xxxx/检测用户是否连接:

        $facebook = new Facebook(array(
          'appId'  => FB_APIKEY,
          'secret' => FB_SECRETKEY,
          'cookie' => true  
        ));

        $session = $facebook->getUser();

        if($session) {
            # Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
            try{
                $uid = $facebook->getUser();
                $user = $facebook->api('/me');
            } catch (Exception $e){}

            if(!empty($user)){
                # User info ok? Let's print it (Here we will be adding the login and registering routines)
                echo $user;
            } else {
                # For testing purposes, if there was an error, let's kill the script
                die("There was an error.");
            }
        } else {
            # There's no active session, let's generate one
            $login_url = $facebook->getLoginUrl();
            header("Location: ".$login_url);
        }

但问题是,当用户被重定向到 $login_url 时,它会不断重定向回来,从而形成一个无限循环。

重定向网址为:https://www.facebook.com/connect/uiserver.php?app_id=xxxxxxxxxxx&method=permissions.request&display=page&next=http%3A%2F%2Fwww.something.com%2Fsomething%2Fapp%2Fsignup%2Fxxxxx%2F&response_type=code&state=6f51768c22974a16b5dcf4d8dc7f46df&fbconnect=1

我在 SO 和 Google 上查看了其他类似问题并尝试了他们的解决方案,但它并没有帮助我。

[更新]

好吧,我想我正在做点什么。如果我以不同的 Facebook 用户身份登录,我不会在循环中被重定向。它似乎只有在我使用我自己的 Facebook 帐户时才会发生,该帐户是该应用程序的管理员。但是在重定向之后它应该正确地返回 getUser().. 但由于某种原因它没有。

有什么想法吗?谢谢。

最佳答案

我从我服务器的根目录开始创建一个新的 .php 文件。一切正常,所以我发现我自己的代码导致网页重定向。

事实上,是我的 .htaccess 文件中的 mod_rewrite 把事情搞砸了。不知何故,它没有获取 FB 设置的 GET 变量。所以我需要为它想点办法。但至少我现在知道是什么导致了这个问题。结案了!

关于PHP-SDK Facebook 身份验证不断重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7140162/

相关文章:

php - 维护网站的事件 FB 身份验证 session

Facebook 触摸模式登录 "500 internal server error"

facebook-graph-api - 如何使用 facebook api 隐藏页面帖子

php - 在 .php 模板中包含 .twig 基本模板

php - stdClass 对象和 Shadow Copy 奇怪的输出

php - 删除所有特殊字符,但不删除非拉丁字符

php - Laravel - 让用户在创建后插入类别并创建新类别(如果不存在)

php - 图片无法直接上传到相册

html - 如何避免像按钮 iframe 这样的 facebook 越过其他按钮?

Yii 和 Facebook SDK V4.0