Twitter のリアルタイム取得(Node.js)

Twitter のメッセージを取得

Twitter Developerに登録しないと使えないとのことなので、申請しました。

いくつか入力して申請を出しましたが、もっと詳しく教えてくれ(英語)のメールがきたので、申請した時と同じ内容を記載したら利用可能になりました。(感覚的にはロボットとかじゃないことを確かめてるような?)

利用する前の準備

というわけで、呟きを取得するためにAPIキーの取得を行います。ですが、いろいろ解説されているサイトの画面と異なっていたので、メモがてら…

Developer Portalのトップページを開き、Create Project を選択します。

f:id:akky97:20201126155542p:plain

プロジェクト名を入力します。

f:id:akky97:20201126215330p:plain

利用目的を選択します。

f:id:akky97:20201126160018p:plain

プロジェクトの説明を入力します。

f:id:akky97:20201126160210p:plain

アプリ名を入れます。

f:id:akky97:20201126160316p:plain

API KeyAPI secret keyBearer tokenが取得されますので、メモります。ここのキーがConsumerキーと呼ばれるものになります。

f:id:akky97:20201126160701p:plain

ナビゲーターから今作成したプロジェクトを選択し、Appsにある鍵マークをクリックします。

f:id:akky97:20201126221004p:plain

Access token & secretGenerateボタンをクリックします。

f:id:akky97:20201126221248p:plain

Access tokenおよびAccess token secretが出力されるので、メモります。

f:id:akky97:20201126221803p:plain

nodeでサンプルを作ってみます。twitを利用してみました。

const Twit = require('twit');

require('dotenv').config();

const T = new Twit({
  consumer_key: process.env.consumer_key,
  consumer_secret: process.env.consumer_secret,
  access_token: process.env.access_token,
  access_token_secret: process.env.access_token_secret
});

var stream = T.stream('statuses/filter', { track: '#TokyoSuperHits' });

stream.on('tweet', function (tweet) {
  console.log('------------------------');
  console.log(tweet.text);
});

実行してみます。

C:\work\twitter>node app.js
------------------------
お誕生日おめでとう!!!!! #TokyoSuperHits
------------------------
おめでとうございます!!!
#TokyoSuperHits
------------------------
大野さん、お誕生日おめでとうーー!!!
#TokyoSuperHits
#嵐
------------------------
ケーキ出てきたwwwww
 #TokyoSuperHits
------------------------
リーダーおめでとう!今年の抱負聞かせて!
#嵐
#TokyoSuperHits
:
:

すごい勢いで取得ができました。(Tokyo...の内容はよくわかってません…)