Php 使用HybridAuth登录Facebook显示错误您无法直接访问此页面

Php 使用HybridAuth登录Facebook显示错误您无法直接访问此页面,php,facebook,session-variables,hybridauth,Php,Facebook,Session Variables,Hybridauth,我正在尝试为我的网站编写一个插件,使用HybridAuth连接facebook 上课 我只是尝试了以下代码 function authenticatewith( $provider ) { ini_set('display_errors','on'); //includes $config = dirname(__FILE__) . '/hybridauth-2.1.2/hybridauth/config.php'; require_once("hybrid

我正在尝试为我的网站编写一个插件,使用HybridAuth连接facebook 上课

我只是尝试了以下代码

function authenticatewith( $provider ) {
    ini_set('display_errors','on');

    //includes
    $config   = dirname(__FILE__) . '/hybridauth-2.1.2/hybridauth/config.php';
    require_once("hybridauth-2.1.2/hybridauth/Hybrid/Auth.php");

    $provider_name = $provider;

    //$config = $this->getconfig($id);
    try {
        // initialize Hybrid_Auth with a given file
        $hybridauth = new Hybrid_Auth($config);

        // try to authenticate with the selected provider
        $adapter = $hybridauth->authenticate($provider_name);

        // then grab the user profile 
        $user_profile = $adapter->getUserProfile();
    }
    catch( Exception $e ) {
        echo "Error: please try again!";
        echo "Original error message: " . $e->getMessage();
    }

    echo "User Details: ";
    var_dump($user_profile);
}
当我从插件类调用这个函数时。在浏览器中,它显示以下错误:

您不能直接访问此页面

…浏览器地址栏中的URL如下所示:

在搜索stackoverflow后,我发现了一个类似的问题,该问题描述了类似的问题,但我无法找出如何将其中的建议应用到我的代码中,以解决该问题:

最可能的问题是不同的域名,因为我的网站运行在两个不同的域名上

如何修复代码以防止此问题

更多详细信息

我在www.bca.com(示例)上有一个facebook链接,当你点击它时,它会进入一个controller.php文件,该文件将访问我正在编写的插件。通常,如果我在网站上保存一个文件夹,比如www.bca.com无法访问的plugin文件夹,而不是其他域名可以访问的文件夹

我想说的是,会话正在bca.com中启动,但是Hybridauth类保存在其他域中。我认为这就是错误出现的原因

我尝试调试,发现Endpoint.php文件中的以下几行出现了错误

// Check if Hybrid_Auth session already exist
if (! $storage->config("CONFIG")) { 
    header("HTTP/1.0 404 Not Found");
    die("You cannot access this page directly.");
}
过去三天我一直在努力解决这个问题。但我在这一点上卡住了,请有人帮助我。
提前感谢

有相同问题的人有一个问题:调用API的文件在同一目录中吗


只有当我将我的文件与config.php文件放在同一文件夹中时,我才能工作。试试那里,告诉我它是否有效

添加
@session_start()后重试在文件顶部的语句。

我也有同样的问题。它与我们的自定义会话处理程序相关,该程序由
session\u set\u save\u handler()
设置。 Hybrid Auth使用标准PHP会话,因此在重定向和打开新会话后,Hybrid Auth开始使用标准PHP文件会话,而不是自定义会话处理程序。这将导致会话中的配置数据丢失,并收到此错误消息

我通过在
hybridauth/index.php
(与
config.php
live.php
位于同一目录)的顶部添加我们自己的自定义会话处理程序解决了这个问题。
这将强制混合身份验证使用您的自定义会话处理程序。

我也有同样的问题。但我知道原因是什么。我开始使用Zebra课程。所以基本上这个脚本甚至找不到会话。有一件事我会考虑,看看你的会议是怎么做的是不同的。我自己只需要想办法让这两个人一起工作!我以前遇到过这个错误,就是当hybridauth库需要从会话中检索的信息不存在时。修复导致信息在会话存储中不可用的问题,您将克服此错误。