0

所以我正在测试变量是否返回指定用户的屏幕名称 tweets 的 JSON 数据.. 但它没有返回任何内容,我使用了正确的 get 方法.. 我哪里出错了.. 下面是代码..

 <?php
$url= "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=agasaro&count=5";
$results = json_decode(file_get_contents($url));
var_dump($results);

VAR_DUMP 返回这个

 Warning: file_get_contents(http://api.twitter.com/1/statuses/user_timeline.json?screen_name=agasaro&count=5) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in
4

1 回答 1

0

好吧,您从未将该请求发送到 twitter 服务器。您所做的只是创建了一个 url 字符串,然后使用json_decode了相同的字符串。没有调用 API 函数,因此可以返回一些数据。

在您的浏览器中转到您创建的 url 字符串。您将获得 JSON 输出。

您必须使用 API 函数并将此 url 传递给该函数,以便它返回其他用于curl手动向该 url 发出请求并获取数据然后json_decode它的东西。

编辑:使用已编辑的问题,我无法重现该错误。它在这里工作正常。看到这个输出。

array (size=2)
0 => 
object(stdClass)[2]
  public 'created_at' => string 'Thu Dec 20 11:11:29 +0000 2012' (length=30)
  public 'id' => float 2.8171845961476E+17
  public 'id_str' => string '281718459614760960' (length=18)
  public 'text' => string 'RPF’S 25-YEAR JOURNEY - The New Times Rwanda http://t.co/BvEuZz06 via @NewTimesRwanda' (length=87)
  public 'source' => string '<a href="http://twitter.com/tweetbutton" rel="nofollow">Tweet Button</a>' (length=72)
  public 'truncated' => boolean false
  public 'in_reply_to_status_id' => null
  public 'in_reply_to_status_id_str' => null
  public 'in_reply_to_user_id' => null
  public 'in_reply_to_user_id_str' => null
  public 'in_reply_to_screen_name' => null
  public 'user' => 
    object(stdClass)[3]
      public 'id' => int 17686705
      public 'id_str' => string '17686705' (length=8)
      public 'name' => string 'Angelica Gasaro' (length=15)
      public 'screen_name' => string 'agasaro' (length=7)
      public 'location' => string 'SW florida' (length=10)
      public 'url' => null
      public 'description' => string '' (length=0)
      public 'protected' => boolean false
      public 'followers_count' => int 63
      public 'friends_count' => int 43
      public 'listed_count' => int 0
      public 'created_at' => string 'Thu Nov 27 19:42:59 +0000 2008' (length=30)
      public 'favourites_count' => int 5
      public 'utc_offset' => int -18000
      public 'time_zone' => string 'Eastern Time (US & Canada)' (length=26)
      public 'geo_enabled' => boolean true
      public 'verified' => boolean false
      public 'statuses_count' => int 70
      public 'lang' => string 'en' (length=2)
      public 'contributors_enabled' => boolean false
      public 'is_translator' => boolean false
      public 'profile_background_color' => string 'B2DFDA' (length=6)
      public 'profile_background_image_url' => string 'http://a0.twimg.com/images/themes/theme13/bg.gif' (length=48)
      public 'profile_background_image_url_https' => string 'https://si0.twimg.com/images/themes/theme13/bg.gif' (length=50)
      public 'profile_background_tile' => boolean false
      public 'profile_image_url' => string 'http://a0.twimg.com/profile_images/2849801480/1d045f13f7b8d248516900a1960be54c_normal.jpeg' (length=90)
      public 'profile_image_url_https' => string 'https://si0.twimg.com/profile_images/2849801480/1d045f13f7b8d248516900a1960be54c_normal.jpeg' (length=92)
      public 'profile_banner_url' => string 'https://si0.twimg.com/profile_banners/17686705/1352931714' (length=57)
      public 'profile_link_color' => string '93A644' (length=6)
      public 'profile_sidebar_border_color' => string 'EEEEEE' (length=6)
      public 'profile_sidebar_fill_color' => string 'FFFFFF' (length=6)
      public 'profile_text_color' => string '333333' (length=6)
      public 'profile_use_background_image' => boolean true
      public 'default_profile' => boolean false
      public 'default_profile_image' => boolean false
      public 'following' => null
      public 'follow_request_sent' => null
      public 'notifications' => null
  public 'geo' => null
  public 'coordinates' => null
  public 'place' => null
  public 'contributors' => null
  public 'retweet_count' => int 0
  public 'favorited' => boolean false
  public 'retweeted' => boolean false
  public 'possibly_sensitive' => boolean false
1 => 
object(stdClass)[4]
  public 'created_at' => string 'Sun Dec 09 15:19:29 +0000 2012' (length=30)
  public 'id' => float 2.777946036069E+17
  public 'id_str' => string '277794603606896640' (length=18)
  public 'text' => string '“@RichardDreyfuss: The Island Where People Forget to Die http://t.co/rhN3s5E9â€' (length=82)
  public 'source' => string '<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a>' (length=82)
  public 'truncated' => boolean false
  public 'in_reply_to_status_id' => null
  public 'in_reply_to_status_id_str' => null
  public 'in_reply_to_user_id' => null
  public 'in_reply_to_user_id_str' => null
  public 'in_reply_to_screen_name' => null
  public 'user' => 
    object(stdClass)[5]
      public 'id' => int 17686705
      public 'id_str' => string '17686705' (length=8)
      public 'name' => string 'Angelica Gasaro' (length=15)
      public 'screen_name' => string 'agasaro' (length=7)
      public 'location' => string 'SW florida' (length=10)
      public 'url' => null
      public 'description' => string '' (length=0)
      public 'protected' => boolean false
      public 'followers_count' => int 63
      public 'friends_count' => int 43
      public 'listed_count' => int 0
      public 'created_at' => string 'Thu Nov 27 19:42:59 +0000 2008' (length=30)
      public 'favourites_count' => int 5
      public 'utc_offset' => int -18000
      public 'time_zone' => string 'Eastern Time (US & Canada)' (length=26)
      public 'geo_enabled' => boolean true
      public 'verified' => boolean false
      public 'statuses_count' => int 70
      public 'lang' => string 'en' (length=2)
      public 'contributors_enabled' => boolean false
      public 'is_translator' => boolean false
      public 'profile_background_color' => string 'B2DFDA' (length=6)
      public 'profile_background_image_url' => string 'http://a0.twimg.com/images/themes/theme13/bg.gif' (length=48)
      public 'profile_background_image_url_https' => string 'https://si0.twimg.com/images/themes/theme13/bg.gif' (length=50)
      public 'profile_background_tile' => boolean false
      public 'profile_image_url' => string 'http://a0.twimg.com/profile_images/2849801480/1d045f13f7b8d248516900a1960be54c_normal.jpeg' (length=90)
      public 'profile_image_url_https' => string 'https://si0.twimg.com/profile_images/2849801480/1d045f13f7b8d248516900a1960be54c_normal.jpeg' (length=92)
      public 'profile_banner_url' => string 'https://si0.twimg.com/profile_banners/17686705/1352931714' (length=57)
      public 'profile_link_color' => string '93A644' (length=6)
      public 'profile_sidebar_border_color' => string 'EEEEEE' (length=6)
      public 'profile_sidebar_fill_color' => string 'FFFFFF' (length=6)
      public 'profile_text_color' => string '333333' (length=6)
      public 'profile_use_background_image' => boolean true
      public 'default_profile' => boolean false
      public 'default_profile_image' => boolean false
      public 'following' => null
      public 'follow_request_sent' => null
      public 'notifications' => null
  public 'geo' => null
  public 'coordinates' => null
  public 'place' => null
  public 'contributors' => null
  public 'retweet_count' => int 0
  public 'favorited' => boolean false
  public 'retweeted' => boolean false
  public 'possibly_sensitive' => boolean false 

注意:检查链接 file_get_contents throws 400 Bad Request error PHP & https://dev.twitter.com/discussions/678

可能您已经达到了当天的 api 限制,这就是他们阻止您并向您发送 400 响应的原因。

于 2012-12-24T02:45:32.487 回答