无法打开流:HTTP请求失败! HTTP / 1.0 400错误请求

时间:2013-04-19 17:21:07

标签: php mysql facebook apache ubuntu

我的服务器似乎没有表现出来。我收到了这个错误。

    failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

这是我已经实施了一年多的代码,并且确认在单独的登台服务器上工作。

    $url = 'http://graph.facebook.com/10150624051911279/photos/all';

$response = json_decode(file_get_contents($url, true));


foreach ($response->data as $photo) {
    echo '<li><a href="' . $photo->link . '" ><img class="img" src="timthumb.php?src=' . $photo->source . '&h=175&w=175"  /></a></li>';
}

我的服务器可能导致此问题失败的原因。我很难过。

1 个答案:

答案 0 :(得分:4)

请求应该失败,因为要访问该URL,您需要获取访问令牌。所以Facebook返回

{
   "error": {
      "message": "An access token is required to request this resource.",
      "type": "OAuthException",
      "code": 104
   }
}

以及“400 Bad Request”状态。另外,因为你打开一个URL,所以file_get_contents的第二个参数应该是false(如果你知道它不在那里就没有必要搜索包含路径。)

要仍然从Facebook获得回复并忽略您可以执行的错误:

$url = 'http://graph.facebook.com/10150624051911279/photos/all';
$context = stream_context_create(array(
  'http' => array(
     'ignore_errors'=>true,
     'method'=>'GET'
     // for more options check http://www.php.net/manual/en/context.http.php
   )
));
$response = json_decode(file_get_contents($url, false, $context));