【问题标题】:Facebook App Error forbidden by X-Frame-OptionsX-Frame-Options 禁止的 Facebook 应用程序错误
【发布时间】:2014-03-16 09:57:04
【问题描述】:

我正在构建一个 Facebook 应用程序,目前它处于沙盒模式。我的代码:-

index.php

<?php
ob_start();
@session_start();

require 'facebook.php';
include_once('config.php');


$facebook = new Facebook(array(
            'appId' => APP_ID,
            'secret' => SECRET_KEY,
            ));

$user = $facebook->getUser();

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }


    if (!empty($user_profile )) {
        # User info ok? Let's print it (Here we will be adding the login and registering routines)

        $username = $user_profile['name'];

        //echo '->'.$username;exit;
        $uid = $user_profile['id'];
        $email = $user_profile['email'];


        @session_start();
        //$_SESSION['id'] = $userdata['id'];
        $_SESSION['oauth_id'] = $uid;

        $_SESSION['username'] = $username;
        $_SESSION['email'] = $email;
        $_SESSION['oauth_provider'] = 'facebook';
        header("Location: home.php");

        ?>

        <?php


    } 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(array( 'scope' => 'email'));
    header("Location: " . $login_url);
}
?>

这里我正在检查用户是否登录,如果它是登录用户,然后重定向到主页,php 否则到 facebook 的登录页面。

但是当我在 facebook 上运行我的应用程序时,它会在控制台上引发错误:-

拒绝显示文档,因为 X-Frame-Options 禁止显示,因为它将 'X-Frame-Options' 设置为 'DENY'

我也尝试了this 解决方案,但它不起作用

【问题讨论】:

  • 最好复制粘贴问题中的错误,而不是发布屏幕截图。我太老了,无法阅读小文本。
  • @ShivanRaptor 我也在我的问题中粘贴了错误

标签: php facebook facebook-php-sdk


【解决方案1】:

使用 JS 重定向代替标头重定向

<script>top.location.href="THE URL"</script>

【讨论】:

  • 感谢您的回复,您的意思是说我应该喜欢这个 top.location.href="home.php" 吗??
  • 我将网址更改为:-
  • 嗯,怎么样
  • 你能在 home.php 头文件的顶部添加以下内容吗('X-Frame-Options: GOFORIT');
  • 相同的结果....从我的帐户我已经构建了这个应用程序,我将我的朋友添加为开发人员。当我通过我的 id 打开此应用程序时,它会打开并在控制台上显示错误 -GOFORIT' 不是可识别的指令。标题将被忽略。并且当我尝试通过我的朋友 ID 打开此应用程序时,它显示错误 - 拒绝显示文档,因为 X-Frame-Options 禁止显示,因为它将“X-Frame-Options”设置为“DENY”
【解决方案2】:

您不能在任何类型的框架中显示登录对话框 - 这是一种反网络钓鱼措施,用户应该始终能够验证他们显示的登录对话框确实来自 facebook.com,而不是从任何其他网站加载的假货。

您必须在顶部窗口实例中重定向到它。这不能在服务器端完成,所以你必须使用 JavaScript:

<script>top.location.href = "…";</script>

【讨论】:

  • 感谢您的回复我试过这个 ;但它显示相同的错误
  • 正如我所说,你必须在顶部框架中调用登录对话框……而这不是登录对话框的地址。 header("Location: " . $login_url) 在你的代码中是你必须用 JavaScript 替换的。
  • 天啊!!有效。我正在使用 js 重定向 home.php 但正如你所说,我现在使用 成功了 :) 谢谢兄弟
  • 你能帮忙解决一下我应该添加什么到 $facebook->getLoginUrl(array('scope' => 'email'));以便它还要求用户授予照片权限
猜你喜欢
  • 2014-05-10
  • 2012-03-14
  • 2011-10-03
  • 2013-05-10
  • 1970-01-01
  • 2015-09-17
相关资源
最近更新 更多