PHP Facebook-API

PHP Facebook-API,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我访问了以下URL: 我将第一个示例复制到我的服务器上,替换了我自己应用程序的appID和secret。 当我访问该页面时,它会显示代码中所示的“请登录”,当我按下该按钮时,应用程序会重新加载,并且它会一直显示相同的内容。我已经登录了Facebook,但即使我按下login键,也什么也没发生 我想知道是否有人知道问题是什么?我把SDK文件放在一个名为src的文件夹中,因此我编辑了“src/facebook.php”的路径 编辑-我得到以下错误(替换了真实文件路径)。我刚刚发现这可能与代理有关

我访问了以下URL: 我将第一个示例复制到我的服务器上,替换了我自己应用程序的appID和secret。 当我访问该页面时,它会显示代码中所示的“请登录”,当我按下该按钮时,应用程序会重新加载,并且它会一直显示相同的内容。我已经登录了Facebook,但即使我按下login键,也什么也没发生

我想知道是否有人知道问题是什么?我把SDK文件放在一个名为src的文件夹中,因此我编辑了“src/facebook.php”的路径


编辑-我得到以下错误(替换了真实文件路径)。我刚刚发现这可能与代理有关

发现错误:

FacebookApiException Object
(
    [result:protected] => Array
        (
            [error_code] => 7
            [error] => Array
                (
                    [message] => couldn't connect to host
                    [type] => CurlException
                )

        )

    [message:protected] => couldn't connect to host
    [string:Exception:private] => 
    [code:protected] => 7
    [file:protected] => filepath/src/base_facebook.php
    [line:protected] => 977
    [trace:Exception:private] => Array

我会用它来检查哪些位在导线上(或者哪些位在导线上)。

我认为这就是问题所在:

catch(FacebookApiException $e) {
    // If the user is logged out, you can have a 
    // user ID even though the access token is invalid.
    // In this case, we'll get an exception, so we'll
    // just ask the user to login again here.
    $login_url = $facebook->getLoginUrl(); 
    echo 'Please <a href="' . $login_url . '">login.</a>';
    error_log($e->getType());
    error_log($e->getMessage());
  }  
catch(facebook异常$e){
//如果用户已注销,您可以使用
//用户ID,即使访问令牌无效。
//在这种情况下,我们将得到一个异常,因此
//只需让用户在此处再次登录即可。
$login_url=$facebook->getLoginUrl();
回音“请”;
错误日志($e->getType());
错误日志($e->getMessage());
}  
Facebook的演示就是这么做的,真的很烦人。它假设您得到的任何异常都是由于过期的用户令牌造成的,而这可能是由于输入错误或其他错误造成的

所以我要做的是将其更改为只显示$e的内容

 catch(FacebookApiException $e) {
    echo 'Error found:';
    echo '<br />Type: '.$e->getType();
    echo '<br />Message: '.$e->getMessage();
    exit;  
 }  
 catch(FacebookApiException $e) {
    echo 'Error found:';
    echo '<br /><pre>';
    print_r($e);
    echo '</pre>';
    exit;  
 }  
catch(facebook异常$e){
回显“发现错误:”;
回显“
类型:”。$e->getType(); 回显“
消息:”。$e->getMessage(); 出口 }
那么至少你可以很容易地看出错误是什么。一旦你让它工作起来,无论如何要把它换回来

如果使用以下选项,您可以获得更多信息:

catch(facebook异常$e){
回显“发现错误:”;
回声“
”; 印刷品(港币);; 回声'; 出口 }

这将产生非常相似的数据页面。不过,我通常会在顶部找到我需要的东西。

而且你的控制台或其他地方没有错误?任何地方都没有错误,Dreamweaver中没有任何错误,文件路径也绝对正确。你使用的是什么服务器包?它托管在我的大学服务器上,所以我假设一切都正常工作,文件权限是否会导致问题?目前不确定;请列出您的权限,但首先在chrome/firefox中打开页面,检查inspector/firebug是否有任何错误?非常感谢,刚刚尝试了一下,出现了以下错误:发现错误:键入:CurlException消息:无法连接到主机,尽管我不知道如何进行更正!?PHP信息显示已启用curl支持..:/我编辑了我的答案,向您展示了获取更多错误信息的方法。你能提供的信息越多,得到的帮助就越多。另外,testcurl通过运行一些示例php代码在您的服务器上运行,如下图所示:如果这样做有效,那么您知道可以排除curl的原因。问题还可能是您的站点没有有效的SSL证书。这可能会产生卷曲错误。非常感谢,我用你上一篇文章中收到的错误编辑了我的原始文章。