JS memo

お洒落にJavaScript。

2019年2月13日21:31

node.jsでtwitter botを作成してみた。<後半戦>

メインビジュアル

node.jsでtwitter botを作成してみた。<後半戦>

Node.jsでtwitter botを作成してみました。完結版です。

前回は必要なモジュールのダウンロードからnodeでツイートするまでを勉強しました。疲れた!

前回の記事はこちら

前回nodeでツイートができるようになったので、今回はツイートを自動で呟けるように設定してみます。今回は前回と比べて全然簡単でした。所要時間5分くらい。

    目次

  1. 構築環境
  2. 前回のおさらい
  3. tweetを自動化する
  4. まとめ

構築環境

Twitter botを作成した時の環境です。(前回と同じ)

  • Mac OS Sierra
  • Homebrew 2.0.1
  • npm 6.7.0
  • node 8.9.1

前回のおさらい

前回やったことをまとめておきます。

  • Homebrewをインストール
  • nodebrewとnode.jsをインストール
  • Twitterのappに登録
  • jsファイルの作成

今回は前回最終的に作成したjsファイルを自動ツイートできるように追記して行きます。

tweetを自動化するjs作成

まず完成版をお見せします。

test.js

var twitter = require('twitter');
var bot = new twitter({
    consumer_key        : "取得したAPI key",
    consumer_secret     : "取得したAPI secret key",
    access_token_key    : "取得したAccess token",
    access_token_secret : "取得したAccess token secret"
});
var tweet_texts = ["Nice day.",
             "It's cold today.",
             "I'm special hungry.",
             "I like sweets."];
setInterval( function post_tweet() {
  var choice_text = tweet_texts[Math.floor(Math.random() * array.length)];
  bot.post('statuses/update', {status: choice_text}, function(error, tweet, response) {
    if (!error) {
      console.log(tweet);
    }
  });
},60000);

前回のjsファイルから追記した部分を順にみていきましょう。

まず、配列を作成し、ランダムにツイートしたい内容をテキストで格納します。

var tweet_texts = ["Nice day.",
             "It's cold today.",
             "I'm special hungry.",
             "I like sweets."];

次にsetIntervalでツイートを自動的に行うよう設定します。ツイートする間隔は自分で設定します。ちなみに以下のコードは60秒(1秒=1000ミリ秒)ごとにツイートするように設定しています。

最初0.006秒で設定してしまい、ツイッターが大変なことになりました笑。

setInterval(
},60000);

そして、setInterval内で先ほど作成した配列の中からランダムで文章を選んでツイートするfunctionを設定します。

var choice_text = tweet_texts[Math.floor(Math.random() * array.length)];
bot.post('statuses/update', {status: choice_text}, function(error, tweet, response) {
 if (!error) {
   console.log(tweet);
 }

これでjsの操作は終わりです。

あとはターミナルを開いて、作成したjsのディレクトリまでいき、以下のコマンドを叩けば設定した間隔でツイートされます!

$ node test.js

まとめ

tweetするまでのモジュールのダウンロードや環境構築に手間取りましたが、前半戦さえクリアすれば、あとは簡単でした。

自動的にいいねをしたりフォローしたりもできるのでまた挑戦してみたいです。

以下参考サイトです。

https://www.npmjs.com/package/twitter