您好我正在使用Twitter API,但我无法获取推文的created_at日期。返回的日期似乎是我请求API的日期,而不是发布推文的日期。
我能够得到这个日期,但如果它是我调用API的日期,它对我没用。 API返回100条推文,每个created_at日期完全相同?
这是我写的代码:
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
$content = $connection->get("account/verify_credentials");
$tweets = $connection->get("search/tweets", ["q" => "#TRIG", "result_type" => "recent", "count" => 100]);
print_r($tweets);
我正在使用这行代码来获取created_at日期:
$tweetCreatedTime = $tweets->statuses[0]->created_at;
这是我用来计算推文的所有代码:
$timeHourAgo = time() - 3600;
$count = 0;
$tweetCoinCount = [];
for ($i=0; $i < round((count($coinSymbol) * 0.06)); $i++) {
$tweets = $connection->get("search/tweets", ["q" => "#" + $coinSymbol[$i], "result_type" => "recent", "count" => 100]);
$tweetsCount = count($tweets->statuses);
for ($t=0; $t < $tweetsCount; $t++) {
$tweetCreatedTime = $tweets->statuses[$t]->created_at;
$tweetCreatedTimestamp = strtotime($tweetCreatedTime);
if ($tweetCreatedTimestamp > $timeHourAgo) {
$count = $count + 1;
}
}
$tweetCoinCount[$coinSymbol[$i]] = $count;
$count = 0;
}
$ coinSymbol只是一串不同的货币,我使用其他API
返回的所有推文都具有相同的created_at日期。
答案 0 :(得分:1)
我建议您重写代码,其中包含"#"+$coinSymbol[$i]
等错误。 .
是PHP中的字符串连接。
好的,所以如果你有一个符号数组,你可以使用foreach循环它们然后抓住你的推文数。请注意,如果您有100个货币符号,那么很快就会遇到twitters API限制。
$timeHourAgo = time() - 3600;
$tweetCoinCount = [];
$coinSymbol = [
'TRIG',
'BTC',
'ETH'
];
foreach ($coinSymbol as $symbol) {
$tweets = $connection->get("search/tweets", ["q" => '#'.$symbol, "result_type" => "recent", "count" => 100]);
$tweetCoinCount[$symbol] = 0;
foreach ($tweets->statuses as $tweet) {
if (strtotime($tweet->created_at) > $timeHourAgo) {
$tweetCoinCount[$symbol]++;
}
}
}
print_r($tweetCoinCount);
Array
(
[TRIG] => 0
[BTC] => 15
[ETH] => 15
)