$ me = $ facebook-> api('/ me')不返回任何值

时间:2010-08-12 06:21:34

标签: php facebook facebook-graph-api

我正在使用New Graph API php sdk开发一个facebook iframe应用程序。我正在使用基本代码来显示我的名字。但它没有返回任何价值。有人请帮助我。

<?php  

  include_once 'facebook.php';  
  include_once 'config.php';  

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

  $session = $facebook->getSession();
  $me = null;

  if ($session) {
    try {  
        $uid = $facebook->getUser();
        echo "Hello " . $uid . "<br />";   // This is displayed with my User Id

        $me = $facebook->api('/me');
       echo "Hello " . $me['name'] . "<br />";  // This is not displayed.

    } catch (FacebookApiException $e) {
        error_log($e);
    }
  }

if ($me) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl();
}

为什么我的名字没有显示?

修改1

如果我使用New Graph API facebook sdk zip文件夹附带的示例代码,我会收到以下错误:

 Fatal error: Uncaught CurlException: 6: 
 Could not resolve host: graph.facebook.com; 
 No data record of requested type thrown in
 C:\xampplite\htdocs\newtest\facebook.php on line 513

第513行是:

 $e = new FacebookApiException(array(
    'error_code' => curl_errno($ch),
    'error'      => array(
      'message' => curl_error($ch),
      'type'    => 'CurlException',
    ),
  ));

请解释我的错误。我在谷歌搜索错误解释,但我无法获得太多信息。我犯的错误是什么?

2 个答案:

答案 0 :(得分:6)

尝试在你调用它的try块中编写以下代码($ me = $ facebook-&gt; api('/ me');)api。

Facebook :: $ CURL_OPTS [CURLOPT_SSL_VERIFYPEER] = false;   Facebook :: $ CURL_OPTS [CURLOPT_SSL_VERIFYHOST] = 2;

答案 1 :(得分:1)

让我们通过以下脚本来查看错误:

try {
    $uid = $facebook->getUser();
    $fbme = $facebook->api('/me');
} catch (FacebookApiException $e) { 
    print_r($e);
}

错误:

[error] => Array
(
    [message] => Failed to connect to 66.220.147.27: Permission denied
    [type] => CurlException
)

传出连接由服务器防火墙过滤。有关如何允许连接外部主机的其他信息,请参阅您的托管支持。

请注意,您也可以禁用防火墙,一切都会正常运行。