如何解析 Twitter api 返回的 json 数据并在我的网页上使用?

Posted

技术标签:

【中文标题】如何解析 Twitter api 返回的 json 数据并在我的网页上使用?【英文标题】:How can I parse the json data returned by Twitter api and use it on my webpage? 【发布时间】:2015-10-01 01:26:11 【问题描述】:

首先我使用提到的代码here。我按照别人的建议做了所有事情,我为我的应用程序生成了密钥并将其放入代码中。当我运行它时,我看到了一个巨大的 json 字符串,里面基本上所有的东西都在那里。这是它的一部分,向您展示我所得到的确切信息:

Array ( [0] => stdClass Object ( [created_at] => Thu May 14 20:06:37 +0000 2015 [id] => 5989425114966784000 [id_str] => 5989425114966784000 [text] => 这是我的第一条推文#hello [来源] => Twitter Web 客户端 [截断] => [in_reply_to_status_id] => [in_reply_to_status_id_str] => [in_reply_to_user_id] => [in_reply_to_user_id_str] => [in_reply_to_screen_name] => [用户] => 标准类对象([id] => 3064494912 [id_str] => 3064494912 [name] => hellomotoUserName [screen_name] => helloHQ [location] => [description] => [url] => [entities] => stdClass Object ([description] => stdClass 对象 ( [urls] => 数组 ( ) ) ) [受保护] => [followers_count] => 0 [friends_count] => 0 [listed_count] => 0 [created_at] => 2 月 27 日星期五 17:39:51 +0000 2015 [favourites_count] => 0 [utc_offset] => 7200 [time_zone] => 贝尔格莱德 [geo_enabled] => [已验证] => [statuses_count] => 3 [lang] => en [contributors_enabled] => [is_translator] => [is_translation_enabled] => [profile_background_color] => C0DEED [profile_background_image_url] => http://abs.twimg.com/images/themes/theme1/bg.png [profile_background_image_url_https] => https://abs.twimg.com/images/themes/theme1/bg.png [profile_background_tile] => [profile_image_url] => http://pbs.twimg.com/profile_images/5975166356332425/fXmL-aI__normal.png [profile_image_url_https] => https://pbs.twimg.com/profile_images/5975166356332425/fXmL-aI__normal.png [profile_link_color] => 0084B4 [profile_sidebar_border_color] => C0DEED [profile_sidebar_fill_color] => DDEEF6 [profile_text_color] => 333333 [profile_use_background_image] => 1 [has_extended_profile] => [default_profile] => 1 [default_profile_image] => [关注] => [follow_request_sent] => [通知] => ) [地理] => [坐标] => [place] => [contributors] => [is_quote_status] => [retweet_count] => 0 [favorite_count] => 0 [entities] => stdClass Object ( [hashtags] => Array ( [0] => stdClass对象([文本] => hello [索引] => 数组([0] => 35 1 => 43))1 => 标准类对象([文本] => 标签 [indices] => 数组 ([0] => 45 1 => 53 ) ) [symbols] => 数组 ( ) [user_mentions] => 数组 ( ) [urls] => 数组 ( ) ) [收藏] => [转推] => [lang] => en ) 1 => stdClass Object ( [created_at] => 2015 年 5 月 12 日星期二 20:38:39 +0000 [id] => 598225796945847936 [id_str] => 598225796945847936 [text] => 这是我的第二条推文#hello [来源] => Twitter Web 客户端 [截断] => [in_reply_to_status_id] => [in_reply_to_status_id_str] => [in_reply_to_user_id] => [in_reply_to_user_id_str] => ...

等等

另一方面,我的网页上有这个 twitter 容器:

<section class="twitter-container">
            <div class="twitter">
                <ul class="tweet_list" id="tweet_list">
                    <li class="tweet_first tweet_even">
                        <span class="tweet_text">I want to put here the text from my latest tweets</span><span class="tweet_time"><a href="http://twitter.com/mytwitteraccount" title="view tweet on twitter">date of first tweet</a></span>
                    </li>
                    <li class="tweet_even">
                        <span class="tweet_text">Again, the same as above, how can I put here latest #tweet?
                            <a href="#">#myFirstTweet</a></span><span class="tweet_time"><a href="http://twitter.com/mytwitteraccount" title="view tweet on twitter">date of 2nd tweet</a></span>
                    </li>

                </ul>
            </div>
        </section>

现在 - 你能帮我解析 json 并将结果拟合到我的 html 代码中吗?我想放在那里,例如最后 5 条推文及其日期和时间.. 非常感谢

【问题讨论】:

【参考方案1】:

您可以使用此代码($tweets 变量是包含所有推文的数组):

<section class="twitter-container">
    <div class="twitter">
        <ul class="tweet_list" id="tweet_list">
            <?php $t = 0; ?>
            <?php foreach ($tweets as $tweet)  ?>
                <?php $t++; ?>
                <?php if ($t>5) break; ?>
                <li class="<?php if ($t==1) print 'tweet-first'; ?> tweet-<?php print $t; ?> tweet_even">
                    <span class="tweet_text"><?php print $tweet->text; ?></span><span class="tweet_time"><a href="http://twitter.com/mytwitteraccount" title="view tweet on twitter"><?php print $tweet->created_at; ?></a></span>
                </li>
            <?php  ?>
        </ul>
    </div>
</section>

【讨论】:

以上是关于如何解析 Twitter api 返回的 json 数据并在我的网页上使用?的主要内容,如果未能解决你的问题,请参考以下文章

php获得api返回的json数据后,如何解析?

Twitter API - 如何将 JSON 存储在数组中?

如何通过 Twitter API https://api.twitter.com/1.1/direct_messages/events/new.json 发送新的直接消息?

使用 Python 从 Twitter 流 API 中提取特定的 JSON 字段

Twitter API 返回错误 215,错误的身份验证数据

Twitter搜索API不返回推文图像