如何解码从Twitter搜索API请求返回的tweets.json
字符串?
我查看了类似问题的答案。这些答案确实显示了如何进行调用,以及如何显示返回的数据,但这些答案不涉及处理从tweets.json
API调用返回的数据结构的问题。
这是代码 - 它使用twitter API。它要求搜索结果。
<?php
require_once('../TwitterAPIExchange.php');
$settings = array(
'oauth_access_token' => "......",
'oauth_access_token_secret' => "......",
'consumer_key' => "......",
'consumer_secret' => "......"
);
$requestMethod = 'GET';
//$url = "https://api.twitter.com/1.1/statuses/user_timeline.json"; // I can decode output from this
//$getfield = "?screen_name=J7mbo&count=5"; // I can decode output from this
$url = "https://api.twitter.com/1.1/search/tweets.json"; // I can NOT decode output from this
$getfield = "?q=%23J7mbo&result_type=recent"; // I can NOT decode output from this
$twitter = new TwitterAPIExchange($settings);
$string = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(); // from stackOverflow
$string = json_decode($string, $assoc = TRUE); // seems i cannot use json_decode for output from tweets.json
if ($string["errors"][0]["message"] != "")
{
echo "twitter error message:" . $string[errors][0]["message"];
exit();
}
foreach ($string as $items)
{
echo "tweet text =[". $items['text']."]<br />";
}
?>
如果我正在使用Twitter API时间轴调用,我可以使用json_decode
并访问每条返回的推文$items['text']
但我想使用twitter API搜索调用(tweets.json). json_decode
无法正确解码此搜索调用中的数据,它只返回两个空$items['text']
那么解码从twitter API请求返回的tweets.json
字符串的最佳方法是什么?
答案 0 :(得分:0)
您需要遍历$items
数组并从那里获取text
属性。
foreach ($items as $item) {
echo "tweet text =[". $item['text']."]<br />";
}
答案 1 :(得分:0)
在检查数据后,我注意到它由两个JSON编码的字符串组成,名为statuses
和search_metadata
。我提取了statuses
字符串,并能够使用json_decode
对其进行解码。