twitterにアプリ登録する
接続に必要なconsumer key, consumer secret, access token, access token secretを取得するために登録を行います。
こちらのサイトにアクセスします。
botでつぶやきたいアカウントでログインしてください。
プログラムを動かしたときに正しくできていればここでアプリ登録したアカウントでメッセージが投稿されてしまいますのでご注意を。
node-twitterを利用する
今回はこれを利用しました。
app.js
var twitter = require('twitter');
var bot = new twitter({
consumer_key : "xxxxxxxxxx" /* 各自記入 */,
consumer_secret : "xxxxxxxxxx" /* 各自記入 */,
access_token_key : "xxxxxxxxxx" /* 各自記入 */,
access_token_secret : "xxxxxxxxxx" /* 各自記入 */
});
bot.updateStatus("this is test tweet by bot program.",function(data){
console.log(data);
});
実行する
node app.js
これだけで実行したらつぶやくことはできました。
定期実行する
さっきのスクリプトをcronとかで時間設定して動かすこともできるけど、今回はnode.js上で実現してみます。
app.js
require('date-utils');
var twitter = require('twitter');
var url = "http://xxxxxxxxxxxxxxxx"
var interval = 28800000; // 8時間
var bot = new twitter({
consumer_key : "xxxxxxxxxx" /* 各自記入 */,
consumer_secret : "xxxxxxxxxx" /* 各自記入 */,
access_token_key : "xxxxxxxxxx" /* 各自記入 */,
access_token_secret : "xxxxxxxxxx" /* 各自記入 */
});
// tweet every {interval} ms
setInterval(
function tweet() {
// メッセージが重複しないように日付と時間を入れる
var dateStr = new Date().toFormat("YYYY/MM/DD/ HH24:MI");
bot.updateStatus("メッセージ" + url + " - " + dateStr,function(data){
console.log(data);
});
}, interval
);
setIntervalで実現できました。
好きな間隔でintervalを設定しましょう。
プロセスの起動にはforeverを利用します。
foreverのインストールはnpmコマンドで。
sudo npm install forever -g
インストールできたら実行してみます。
forever start app.js
起動したプロセスの確認は以下の通り。
$ forever list
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [0] 34EC /usr/bin/nodejs app.js 6381 6383 /home/xxxxx/.forever/34EC.log 0:0:33:7.778