コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

記念のツイッターボット作成

ツイッタやってないけどボットつくるの巻

はい、おはようございます。僕です。今日も中身のないことを書き綴っていこうかと思います。なんで中身のないことをやってしまうのか言いますと、もうそろそろ例のアレの無料公開期間終わるので記念にこの辺りをやっておくことにしたのでした。

というわけでこれを見てみた。
f:id:andron:20200520235602p:plain
僕が頑なにTwitterやらないんで今回はやったというスクショは取れませんのでどんな機能があるかの箇条書きになります。とりまこんなのできるらしい。まあ公式リファレンスみればなんとかなるよねとか言ってしまえばそれまでなんですがね……。

機能

  • 自分宛のツイートに反応
  • 指定された単語にツイートを送る
  • ダイレクトメッセージを送る

ミニアプリ

  • ツイ消し検知
  • 俳句検知

作るものとかはそんな感じ。ライブラリなんかは以下のやつ使うっぽいです。
GitHub - ttezel/twit: Twitter API Client for node (REST & Streaming API)
GitHub - kelektiv/node-cron: Cron for NodeJS.
GitHub - hecomi/node-mecab-async: Asynchronous japanese morphological analyser using MeCab.
Mecabが若干曲者だけど公式見ればなんとかなるんじゃないですかね……。

'use strict';
const Twitter = require('twitter');
const cron = require('cron').CronJob;

// Twitter 設定
const client = new Twitter({
  consumer_key: 'Consumer Key',
  consumer_secret: 'Consumer Secret',
  access_token_key: 'Access Token',
  access_token_secret: 'Access Token Secret'
});

// タイムラインを取得
// https://developer.twitter.com/en/docs/tweets/timelines/api-reference/get-statuses-home_timeline
function getHomeTimeLine() {
  client.get('statuses/home_timeline', {}, function (error, tweets, response) {
    if (error) console.log(error);
    tweets.forEach(function (val, key) {
      // 取得したツイートをいじる
      // 例: robot.send() // ツイート
    });
  });
}

module.exports = function (robot) {
  // cron
  const cronJob = new cron({
    cronTime: '00 0-59/5 * * * *', 
    start: true, 
    onTick: function () {
      getHomeTimeLine(robot);
  }
  getHomeTimeLine(robot);
});
};

コードは大体こんな構成。僕が頑なにTwitterやらないせいで中身が全くない……。大まかにソース見た感じTwitterの設定を受け取ってCronで回してタイムラインのデータを加工みたいなノリ。

まあ記念でやっただけなんでそんなのありましたよっていう報告だけでも。そのうちGlitchにでもみんなで遊べるコードとかやって晒しますんで…。


まあいいや。僕がTwitter始めたときにでもこの記事掘り起こして肉付けしていくとかそんな感じにやっていこうと思いますので今回はこんなんで許してください。

おわり