他カテゴリ

全ツイートのいいねを取得する

やよい🌜UGOK's icon'
  • やよい🌜UGOK
  • 2020/07/15 14:04
Content image

こんにちは。やよいです。

 

 

前回の終わりに、期間を区切っていいねを取得すると書きましたが、一旦ツイッターAPIを叩いて全ツイートのいいね数を取得する部分についてまとめておくことにしました。

今回書いたコードはこちらです。

async function getTweets(user) {
console.log(user);
let params = {
id: user.twitter_id,
count: 200,
include_rts: false,
};
let tweets = await twiClient
.get("statuses/user_timeline", params)
.catch((error) => console.error(error));
let all_tweets = tweets;
let oldest = all_tweets.slice(-1)[0].id;
while (tweets.length > 0) {
params.max_id = oldest;
tweets = await twiClient
.get("statuses/user_timeline", params)
.catch((error) => console.error(error));
all_tweets = all_tweets.concat(tweets);
oldest = all_tweets.slice(-1)[0].id - 300;
}
fs.writeFileSync(
`json/tweets/${user.twitter_id}.json`,
JSON.stringify(all_tweets),
"utf-8"
);
}

全ツイートを取得し、保存するコードです。

リツイートを含まない、1ページあたりのツイート数は200まで
のパラメータでAPIを叩いています。

参考した記事はpythonのものだったので、それをjavascriptに書き換えました。

なぜかall_tweets.slice(-1)[0].id - 1;ではページ送りがされず、無限ループになってしまっていたので、次ページに影響せず、無限ループにならない範囲の数字(300)を指定しました。
200でも無限ループになっていました。なぜでしょうか・・・

とりあえず、取得したツイートすべてをjsonファイルとして保存をしています。

 

function getLikeAndRT(user) {
let rt = 0;
let likes = 0;
const tweets = JSON.parse(
readFileSync(`json/tweets/${user.twitter_id}.json`, "utf-8")
);
tweets.forEach((tweet) => {
likes += tweet.favorite_count;
rt += tweet.retweet_count;
});
const twitter_obj = {
likes_all: likes,
rt_all: rt,
};
return twitter_obj;
}

そして、こちらでツイッターIDを元に、ツイート内容を保存しているjsonファイルを読みこんでいます。

引数のuserには、DBに保存する際のユーザーIDと、ツイッターのIDが入っています。

各メンバーのツイートファイルから、favorite_countとretweet_countを取り出し、加算しています。

 

前回に引き続き、これは全ツイートのRTいいね数なので、日付の指定はしていません。

この加算結果をDBに保存すると、このようになります。

Content image

これで全ツイートのRTいいね数を取得してDBに保存するところまでできました。

 

そろそろまとめ作業だけではなく進捗を出していかなければなりませんね・・😇

 

参考記事

 

Article tip 0人がサポートしています
獲得ALIS: Article like 12.27 ALIS Article tip 0.00 ALIS
やよい🌜UGOK's icon'
  • やよい🌜UGOK
  • @ugok841
UGOKのやよいです。Djangoをやっていました。最近Javascriptを勉強し始めました。Twitter-> @ugok841

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

スーパーコンピュータ「京」でマイニングしたら

Like token Tip token
1.06k ALIS
Eye catch
他カテゴリ

オランダ人が語る大麻大国のオランダ

Like token Tip token
46.20 ALIS
Eye catch
グルメ

バターをつくってみた

Like token Tip token
124.75 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

Like token Tip token
114.82 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
ビジネス

ブックオフで買ってきてアマゾンで売る仕事の1ヶ月の売り上げ公開

Like token Tip token
177.41 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
120.79 ALIS
Eye catch
クリプト

ブロックチェーンの51%攻撃ってなに

Like token Tip token
0.00 ALIS
Eye catch
他カテゴリ

SASUKEオーディションに出た時の話

Like token Tip token
35.87 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

Like token Tip token
114.82 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS