1

我正在使用 Twitter Search API 1.1 搜索特定关键字的推文,并将结果显示为 Motherpipe.co.uk 上的搜索结果页面。

在http://github.com/j7mbo/twitter-api-php的 James Mallison 的帮助下,我设法让 Oauth 工作。

我陷入了从 Twitter 获取实际响应并将其正常显示在 HTML 中的 div 中(使用 PHP)的阶段。这是我得到的回复:https ://motherpipe.co.uk/staging/index2.php 。

我似乎无法编写一个简单的循环来仅显示“屏幕名称”和“文本”。

到目前为止,我已经尝试了不同的版本:

$url = 'https://api.twitter.com/1.1/search/tweets.json';
$requestMethod = 'GET';
$getfield = '?q=sweden&result_type=recent';


$twitter = new TwitterAPIExchange($settings);
echo $twitter ->setGetfield($getfield)
                ->buildOauth($url, $requestMethod)
               ->performRequest();


$response = json_decode($twitter);

foreach($response as $tweet)
{
  echo "{$tweet->screen_name} {$tweet->text}\n";
}

任何关于如何正确循环的反馈或想法将不胜感激。

干杯

4

4 回答 4

1

所以答案(感谢 Prisoner、Jonathan Kuhn 和 Mubin Khalid)是,为了显示来自 Twitter 搜索 API 的响应,为 Twitter JSON 响应分配一个变量。这将使您能够循环并显示响应中您想要的任何内容。

$url = 'https://api.twitter.com/1.1/search/tweets.json';
$requestMethod = 'GET';
$getfield = '?q=sweden&result_type=recent';


$twitter = new TwitterAPIExchange($settings);

$api_response = $twitter ->setGetfield($getfield)
                     ->buildOauth($url, $requestMethod)
                     ->performRequest();


$response = json_decode($api_response);

foreach($response->statuses as $tweet)
{
  echo "{$tweet->user->screen_name} {$tweet->text}\n";
}
于 2013-09-23T22:40:12.477 回答
1

我不使用詹姆斯代码,但我让它以其他方式工作

<ul>
<?php $get_tweets = $connection->get("https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".$twitteruser."&count=".$notweets);

foreach($get_tweets as $tweet) { 

$tweet_desc = $tweet->text;
?>

<li><?php echo $tweet_desc ?></li>

<?php }?>
</ul>

您可以在此页面的页脚看到有效的 Twitter Api V1.1 。如果您想要这样的东西或进一步定制,请告诉我。

于 2013-09-24T01:22:36.057 回答
1

用户信息在下方$tweet->user->screen_name,推文在下方$tweet->text

$response = json_decode($twitter);

foreach($response->statuses as $tweet)
{
  echo "{$tweet->user->screen_name} {$tweet->text}<br />";
}

或者你也可以使用它

$response = json_decode($twitter, true);
$counter = 0;
foreach($response['statuses'] as $tweet)
{
  echo "{$tweet[$counter]['user']['screen_name'] {$tweet[$counter]['text']}<br />";
  $counter +=1;
}
于 2013-09-23T22:34:52.023 回答
1

如果你做 a var_dumpof $response,你可能会对结构有更好的了解。看起来你需要循环过去$response->statuses。用户信息在下方$tweet->user->screen_name,推文在下方$tweet->text。所以:

$response = json_decode($twitter);

foreach($response->statuses as $tweet)
{
  echo "{$tweet->user->screen_name} {$tweet->text}\n";
}
于 2013-09-23T21:49:56.657 回答