无法将_get_contents归档以工作



我正在使用facebook图形api来检索登录用户的信息。

$facebookdata = json_decode(file_get_contents('https://graph.facebook.com/me?access_token=' . $fb_accesstoken . '&fields=name,picture'),true);

现在,当我var_dump时,我得到null。我确实试过转到urlhttps://graph.facebook.com/me?access_token=ACCESS_TOKEN&fields=id,name,picture。它显示了名称和照片URL。

我感谢你的帮助。

不用file_get_contents,你可以使用更容易使用的Facebook PHP SDK(请参阅github):

require "facebook.php";
$facebook = new Facebook(array(
    'appId'  => YOUR_APP_ID,
    'secret' => YOUR_APP_SECRET,
));
$facebook->setAccessToken("...");
$args['fields'] = "name,picture";
$facebookdata = $facebook->api('/me', $args);

如果您想查看获取用户访问令牌的流程,请查看SDK的示例(文档齐全)。

希望能有所帮助!

检查php.ini中是否启用了allow_url_fopen。否则进行调整,因为file_get_contents届时将无法从http URL中读取。

第二,提高你的error_reporting水平。它应该告诉你的。

若并没有收到错误消息,那个么使用PHP user_agent的访问可能会被阻止。还有另一个php.ini设置。另外,也可以尝试curl

您应该确定请求返回的http响应代码。

我发现file_get_contents()只在http响应为200时有效

如果响应代码是404(找不到页面)、400(错误请求)等,则不会返回字符串。

使用错误的access_token访问Facebook API返回400。

示例:

带有'的file_get_contents()http://www.google.co.uk有效,来自谷歌的http响应是200

带有'的file_get_contents()http://www.google.co.uk/me'为空,来自谷歌的http响应为404

 //i had the same problem before.for some reason the server has a problem with file_get_contents and i used this function.try it instead
 /* gets the data from a URL */
 function get_myurl_data($url) {
$ch = curl_init();
$timeout = 5;
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
 }
 $url = 'https://graph.facebook.com/me?access_token=' . $fb_accesstoken . '&fields=name,picture';
 $facebookdata = json_decode(get_myurl_data($url));

相关内容

  • 没有找到相关文章

最新更新