LoginSignup
11
8

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-02-06

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

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

作成にかかった時間

  • 1時間

使用したもの

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

プログラムの構成図

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

プレゼンテーション1.png

内容

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

2018-02-06_15-27-16[1].png

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 > アプリケーション設定

より導入しました。

2018-02-06_15-33-48[1].png

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 パッケージを使うと楽。

11
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8