Twitter Developer Platform に登録して Twitter API を使ってみた

Node.js スクリプトを書いて、Twitter API を叩いて、自分のツイートを収集・分析してみようと思った。

Twitter API は、Twitter Developer Platform という開発者用のプログラムに登録しないと使えないようで、この登録には審査が必要だ。少々手間だが、時間はそれほどかからなかったので、手順を紹介する。

といっても、おおまかな手順は以下の記事に沿っているので、特に補足するようなことはなく。w

Twitter Developer Platform に登録する

まずは Twitter Developer に登録する。以下のページより、Developer Account として登録を開始する。

途中、使用用途などを、英語で、一定文字数以上回答しなくてはならない。自分は、拙い英語だが、以下のような内容を英語で書いた。

個人のプログラミングスキル、具体的には JavaScript を使った Node.js プログラミングの習得のために使用する。
自分のツイートや「いいね」を集計し、分析し、一括で削除したり、テキストファイルに書き出したりするプログラムを作成したいと考えている。

申請後、前述の記事では「9日後」に返信が来た、と記載されていたが、自分は申請後15分程度で返信があり、アカウントが有効になった。

アプリを作成する

開発用アカウントが有効になったら、「Create an app」より、アプリ作成の申請を行う。個人で Node.js スクリプトを叩くだけの場合でも、「アプリ」として登録する。

アプリを登録すると、「Consumer API Keys」と「Access Token」が発行される。具体的には以下の4つ。

  1. Consumer API Key
  2. Consumer API Secret Key
  3. Access Token
  4. Access Token Secret

Node.js スクリプトを書いてみる

コレで Twitter API を叩くための情報が手に入ったので、Node.js スクリプトを書いてみる。

適当な作業ディレクトリを作り、npm init したら、twitter パッケージをインストールする。

$ npm install --save twitter

続いて以下のようなコードを index.js として書いてみる。API キー部分は自分が発行した API キーに書き換える。

const Twitter = require('twitter');

const client = new Twitter({
  consumer_key: '【Consumer API Key】',
  consumer_secret: '【Consumer API Secret Key】',
  access_token_key: '【Access Token】',
  access_token_secret: '【Access Token Secret】'
});

// 特定のユーザの「いいね」のリストを取得する
client.get('favorites/list', {
  screen_name: 'Neos21',  // 取得したいユーザの ID を指定する
  max_id: '【ツイート ID】'  // 特定の位置以前のツイートを取得する場合は指定する
})
  .then((tweets) => {
    // 取得した「いいね」ツイートを出力する
    tweets.forEach((tweet) => {
      console.log(tweet.user.name, tweet.text);
    });
    
    console.log('Success : ', tweets.length);
  })
  .catch((error) => {
    // 取得に失敗した場合
    console.error(error);
    console.error('Failure');
  });

あとは $ node index.js と叩いてみよう。上述のコードが上手く動けば、@Neos21 ユーザが「いいね」したツイート一覧を取得できる。

Twitter API の仕様上、そのままでは古いツイートを遡って取得することができないので、max_id で基準となるツイートの ID を指定することで遡っていく。

以上

以上、Twitter API を使った簡単なスクリプトを書いてみた。

API キーを発行するまでの道のりが若干面倒ではあるが、個人が趣味で開発するだけでも一応 API キーは発行できるので、気軽に試してみてはいかがだろうか。