Logic Apps, Azure Functions を使い 全自動ついふぁぼ機をサーバーレスで作った。


勉強会を主催したときに参加者の人がイベントページをつぶやいてくれた時に ふぁぼりたい★ というのはよくあると思います。

そんな時に、気軽に自動ふぁぼプログラムを作れるようにサーバーレスで作成してみました。

作成にかかった時間

  • 1時間

使用したもの

  • Azure Functions
  • Logic Apps
  • NodeJS
  • npm Twitter module

プログラムの構成図

  1. Twitter より新しい呟きを Logic Apps で検知
  2. 呟きの情報を Azure Functions へ
  3. Azure Functions は呟きの情報を使い ふぁぼ!

内容

新しい呟きを Logic Apps より取得

Logic Apps のTwitterトリガーを使い新しいツイートがされるたびに起動するようにしています。
工夫した点は、検索文字列の「ブイアールサンダー lang:ja -RT」で

  • lang:ja にすることで日本語ツイートに限定
  • -RT にすることでリツイートは除外しています

あとは、 Azure Functions を Logic Apps から呼び出しています。

ツイートの情報を利用していいね!

Azure Functions 側の話に移ります。

JS で作成しています。

Twitter をJSから叩けるパッケージの導入

Azure Functions のコンソールより適当に npm の導入とパッケージのインストールを行います。

npm init -y
npm install Twitter

パッケージの公式ドキュメントを参考にしました。

環境変数のセットアップ

コードにTwitterとの接続情報を記入してもいいのですが、環境変数に記入することで Azure Functions を使いまわせるかなと思ったのでそうしました。

Azure Functions > アプリケーション設定

より導入しました。

Azure Functions の コード

module.exports = function (context, data) {
  // Twitter パッケージの導入
  var Twitter = require('twitter');

  var input = data;

 // Twitter クライアントの作成
  var client = new Twitter({
        consumer_key: process.env.TWITTER_CONSUMER_KEY,
        consumer_secret: process.env.TWITTER_CONSUMER_SECRET,
        access_token_key: process.env.TWITTER_ACCESS_TOKEN_KEY,
        access_token_secret: process.env.TWITTER_ACCESS_TOKEN_SECRET
   });

  client.post('favorites/create.json', {id: input.tweetId});

    context.done();
};

まとめ

Logic Apps を利用してツイートをトリガーにするのは楽。
npm の Twitter パッケージを使うと楽。