no-image

Node.jsでTwitter APIを使ってツイートを取得(APIの初期設定からやってみた)

休日にTwitter APIを使ってみたので、備忘としてブログに残しておこうと思います。
APIを利用できる状態(初期設定)がすごく大変でした。APIを利用するためには、アプリケーションの情報(Key,ID)を事前に取得して必要があります。実際やってみたときは、「どこからAPIのID取得するの?ってなって10分くらいさまよいました。。。」ということで早速やってみたいと思います。

前提条件

  • ツイッターアカウントを取得済みで、電話番号が連携されていること。(APIキー取得時に電話番号が連携されてないとキーが取得できないようになっています。)
  • Node.jsの実行環境が構築済みであること

事前作業

APIを実行するには、こちらの4つの情報が必要になります。

  1. consumer_key   ・・・アプリケーションのキー
  2. consumer_secret  ・・・アプリケーションのシークレット
  3. access_token_key  ・・・ツイッターアカウントのキー
  4. access_token_secret ・・・ツイッターアカウントのシークレット

アプリケーションを登録してAPIの取得

まずは、consumer_keyとconsumer_secretを取得します。

1.下記URLよりアプリケーションを登録をおこないます。

https://apps.twitter.com/app/new

以下のように必要な情報入力していきます。

※ Nameは一意の名称である必要があるので、他の人が既に使用している名前での登録はできません。

※ Descriptionは10文字以上で無いとエラーになるので、最低10文字は入れてください。

2.入力が終わったら、画面下の同意欄にチェックを入れ、[Create your Twitter application]をクリックして、アプリケーションを作成します。

3.これで登録完了となるので、[Key and Access Tokens]タブをクリックするとアプリケーションで利用するAPI key & Secretの情報を確認できます。

ツイッターアカウントのトークンを取得

残りのaccess_token_keyとaccess_token_secretの取得をします。
先程の画面下スクロールするとYour Access Tokenという項目があります。ここの[Create my access token]をクリックすると残りの2つを取得できます。

クリック後、トークンが表示されるかと思います。

これで事前作業となるアプリケーションのキーおよびツイッターアカウントのトークンの取得は完了です。続いて実際にツイートを取得してみたいと思います。

やってみた

user_timelineというAPIを使うことでツイートを取得できます。

ツイート取得

let twitter = require('twitter');
var client = new twitter({
  consumer_key:        'トークン入力',
  consumer_secret:     'トークン入力',
  access_token_key:    'トークン入力',
  access_token_secret: 'トークン入力',
});

getTweet();

function getTweet() {
  let params = {
    screen_name: 'Twitter',
    count: 10,
    include_rts: false,
    exclude_replies: true
  };
  client.get('statuses/user_timeline', params, function(error, tweets, response) {
    if (!error) {
      for (let i = 0; i < tweets.length; i++) {
        console.log(tweets[i].text);
      }
    } else {
      console.log(error);
    }
  });
}

実行結果

See how Martin Luther King Jr. influenced the world with #ThankYouMLK50
https://t.co/NUiGnd2V83

ツイッター社のツイートが表示されることが確認出来るかと思います。

参考URL

Get Tweet timelines

 

以上