【问题标题】:PHP Facebook - APIPHP Facebook - API
【发布时间】:2013-02-06 23:15:48
【问题描述】:

我去了以下网址:http://developers.facebook.com/docs/reference/php/facebook-api/ 我将第一个示例复制到我的服务器,以替换我自己的应用程序的 appID 和密码。 当我访问该页面时,它显示“请登录”,如代码所示,当我按下该按钮时,应用程序重新加载并且它一直在说同样的事情。我已经登录了 Facebook,但即使我按下登录也没有任何反应。

我想知道是否有人知道问题是什么?我在 index.php 被称为 src 的文件夹中有 SDK 文件,所以我编辑了 '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

【问题讨论】:

  • 你的控制台或其他地方没有错误?
  • 没有任何错误,Dreamweaver 中没有任何内容,而且文件路径绝对正确。
  • 你用的是什么服务器包?
  • 它托管在我的大学服务器上,所以我假设一切正常且正常工作,文件权限是否会导致问题?
  • 目前不确定;您能否列出您的权限,但首先在 chrome/firefox 中打开页面并检查检查器/firebug 是否有任何错误?

标签: php facebook facebook-graph-api


【解决方案1】:

我认为这是问题所在:

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());
  }  

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;  
 }  

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

【讨论】:

  • 非常感谢,刚刚试了一下,得到以下错误:发现错误:类型:CurlException 消息:无法连接到主机虽然我不知道如何去纠正它!?
  • PHP 信息显示 curl 支持已启用.. :/
  • 我已经编辑了我的答案,以向您展示获取更多错误信息的方法。您可以提供的信息越多,您将获得的帮助就越多。此外,通过运行一些示例 php 代码,测试 curl 正在您的服务器上运行,如下所示:pastebin.com/fLcuGGPZ 如果这有效,那么您知道您可以排除 curl 作为原因。问题还可能是您的站点没有有效的 SSL 证书。这可能会产生 curl 错误。
  • 非常感谢,我用您上次发布的 sn-p 收到的错误编辑了我的原始帖子。
【解决方案2】:

我会使用Fiddler 来检查哪些位正在通过线路(或者那些位正在通过线路)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 2013-11-20
    相关资源
    最近更新 更多