用PHP获取我最新的Twitter帖子

时间:2010-02-16 19:39:23

标签: php twitter

我正在尝试创建一个使用php和Twitter API的简单网站,从twitter上写出我的最新帖子。我找到了一个教程,向我展示了如何以xml格式获取我的时间轴(或最近20篇帖子),但无法弄清楚如何打印只是最新帖子,只是它的文本(不是xml / rss / etc附带的时间,日期等)。

我的代码看起来像这样

<h2 id = "latest">
    <?php
        var $username='myusername';  
        var $password='mypassword'; 
        var $responseInfo=array();

        function latest_status($format='json',$id=null) {
            $request = 'http://twitter.com/statuses/user_timeline.'.$format;
            if($id) {
                $postargs = "id=$id";
                return $this->process($request,$postargs);
            }
            return $this->process($request);
        }

        echo latest_status("json");
    ?>
</h2>

它正在归还:

  

[{ “贡献者”:NULL, “created_at”:“星期二   2月16日19:56:08 +0000   2010" , “in_reply_to_user_id”:NULL, “源”: “API”, “收藏”:假 “in_reply_to_status_id”:NULL, “截短的”:假, “用户”:{ “通知”:NULL, “profile_link_color”: “0000FF”, “说明”: “”, “验证”:假的, “profile_background_tile”:假的, “created_at”:“星期二   2月16日01:16:15 +0000   2010" , “profile_background_color”: “9ae4e8”, “profile_image_url”: “http://s.twimg.com/a/1265999168/images/default_profile_1_normal.png”, “的time_zone”: “夏威夷”, “profile_sidebar_fill_color”: “e0ff92”, “FOLLOWERS_COUNT”:0, “SCREEN_NAME”:” whisperingweb “ ”郎“: ”恩“, ”FRIENDS_COUNT“:0, ”profile_sidebar_border_color“: ”87bc44“, ”statuses_count“:2, ”以下“:空, ”保护“:假的, ”favourites_count“:1,”位置“:”“‘名’:”克里斯   阿姆斯特朗 “ ”contributors_enabled“:假的, ”profile_text_color“: ”000000“, ”ID“:114608397, ”geo_enabled“:真实的, ”profile_background_image_url“: ”http://s.twimg.com/a/1265999168/images/themes/theme1/bg.png“, ”utc_offset“: - 36000,” 网址“:空},” in_reply_to_screen_name “:空,” 地理 “:空,” ID “:9199090048,” 文 “:” 有人   在你身上   网站 “},{” 收藏 “:假的,” 源 “:” 网络 “ ”in_reply_to_user_id“:空, ”created_at“:” 星期二   2月16日18:50:21 +0000   2010" , “地理”:空, “用户”:{ “验证”:假的, “说明”: “”, “通知”:假的, “profile_text_color”: “000000”, “SCREEN_NAME”: “whisperingweb”,” profile_background_image_url “:”http://s.twimg.com/a/1265999168/images/themes/theme1/bg.png “ ”URL“:NULL, ”profile_link_color“: ”0000FF“, ”FOLLOWERS_COUNT“:0 ”statuses_count“:2 ”profile_background_tile“:假 ”created_at“:” 星期二   2月16日01:16:15 +0000   2010" , “FRIENDS_COUNT”:0, “profile_background_color”: “9ae4e8”, “contributors_enabled”:假 “的time_zone”: “夏威夷”, “favourites_count”:0, “profile_sidebar_fill_color”: “e0ff92”, “保护”:假的, “位置”: “”, “名”:“克里斯   阿姆斯特朗 “ ”郎“: ”恩“, ”geo_enabled“:真实的, ”profile_sidebar_border_color“: ”87bc44“, ”ID“:114608397, ”以下“:假的, ”utc_offset“: - 36000, ”profile_image_url“:”{ {3}} “” 贡献者 “:空,” in_reply_to_status_id “:空,” ID “:9196705546,” in_reply_to_screen_name “:空,” 截断 “:假的,” 文 “:” 在   快速的棕色狐狸跳过懒惰   狗“}]

我对php很新,对Twitter API来说是全新的,所以非常感谢任何帮助或建议。

编辑:已将示例从xml更改为json

2 个答案:

答案 0 :(得分:2)

使用format ='json'代替:json_decode($ response)[0] ['text']。

在这种情况下,使用JSON,因为它具有更自然的PHP内部数据类型映射,这使得提取所需内容变得非常容易。你可以仍然使用XML,但你必须迭代结果,这是相对复杂的。

答案 1 :(得分:2)

这只是你的webbrowser显示没有标签的xml文件的内容。您需要使用xml库(例如simplexml,http://php.net/manual/en/book.simplexml.php)来获取所需的信息。

编辑以反映OP更改

使用json_decode方法(参见http://www.php.net/manual/en/function.json-decode.php)。可以像数组一样访问输出。

如果还有其他问题,请使用PHP和google的文档(我通过谷歌“json in php”获得了有关json的信息。)