そんな今日この頃でして、、、

コード書いたり映画みたり。努力は苦手だから「楽しいこと」を探していきたい。

Microsoft Flowを使ってエゴサーチを自動化したり、筋トレを習慣化したり

休み前には色々勉強しようとか試してみようとか思ってたことがあったんだけど、 やっぱりというか、いざ正月となるとだらけてしまいますなあ。

とはいえ折角の連休を無為に過ごしてしまうのもなんなので、 軽めのITネタということでFlowを触ってみた話。


Flowというのは去年11月に正式版が公開されたMicrosoft謹製の色々なサービスを連携するサービス。

flow.microsoft.com

身も蓋もない言い方をするとIFTTTのパクり。

IFTTTといえば色々な情報をSlackに集約するみたいな使い方なんかがよく紹介されてて、 僕も時間とれたらやってみたいなーと思いつつアカウント作ったりするのが面倒で放置してたんだけど、 MSだったらhotmailアカウント持ってるということで色々いじってみた。


エゴサーチを自動化する

ひとまずベタな使い方ということで、

  1. Twitterアカウントと連携してブログのURLを含んだ新しいツイートを検索し
  2. 新しいものがあればSlackのチャンネルに通知

というのをやってみた。


テンプレートにも似たようなのはあるけど、ひとまずは1から作ってみる。

「自分のフロー」ページの「一から作成」ボタンを押してフローの作成画面へ。

f:id:blue1st:20170102014146p:plain:w300

まずはトリガーとなる動作ということで、Twitterの「新らしいツイートが投稿されたとき」を指定する。

もろもろの認証を行った上で、検索ワードとして

  • このブログのURLである「blue1st.hateblo.jp」
  • もう一個のブログである「blue1st-tech.hateblo.jp」をOR条件で追加
  • 自分自身のツイートを除外するため「-from:blue1st」

を指定。

(せっかくだから条件分岐を試してみようと思ったんだけど、どうにも意図した動きをしてくれなかったので検索ワードで自分を除外した)


通知側ということで同じくSlackアカウントを認証し、通知メッセージを組み立てる。

文面は自由記述+前の処理の戻り値を選択して挿入できる。

f:id:blue1st:20170102014439p:plain:w300

これで、このブログもしくはもう一個の方のブログのURLがTwitterで言及されたらSlackに通知してくれる。


筋トレ記録ボタンを作る

いろいろ眺めているとFlowにはAndroidアプリが用意されていて、そのアプリ上のボタンタップをトリガーとすることもできるようだ。

そこで思いついたのが筋トレの記録と通知。

最近は健康診断の結果が気になるようなってきたということで筋トレをしようと心がけてるんだけど、 その時々でやる気はあっても、一日おきのインターバルとかを気にしているとどうにも続かなそう。

ということで、

  1. 筋トレ終了時にボタンをタップ
  2. Googleカレンダーに記録
  3. 45時間経過後にプッシュ通知

という筋トレの継続を促すフローを作った。

f:id:blue1st:20170102014817p:plain:w300

f:id:blue1st:20170102015018p:plain:w300


Google Playからアプリを導入しておく。

play.google.com


起動してボタンタブをみると、作成したフローのボタンが表示される。

f:id:blue1st:20170102015657p:plain:w300

タップすると実行され・・・

f:id:blue1st:20170102015802p:plain:w300

f:id:blue1st:20170102015808p:plain:w300

目論見どおりGoogleカレンダーにもイベントとして追加される。

f:id:blue1st:20170102015852p:plain:w300

また、指定した時間が経過するとプッシュ通知を届けてくれる。


もう少し凝ると、例えばやったトレーニングの種類ごとにボタンを作ってGoogleスプレッドシートに行を追加してくと、 体重の推移なんかと照らし合わせたりできて面白いかもしれない。


若干日本語が怪しいところがあったり、フローを作るUIが色々気が利かなかったりするのだが、 単純な直列処理に関してはそこまで迷うこと無く組み立てられる。

ループとか条件分岐とかはある程度プログラミングの心得が無いとつらそうだけど、 そもそもこの手のサービスにピンとくる層的には問題ないのかもしれない。

連携してるサービスがまだ足りない(個人的にはPocketが欲しかった)とか、 HTTPでAPIを叩けるのは良いけど戻り値を加工する術が無さそうだから片手落ちな感じがあったりとかいった残念さはある。

例えばJavascriptが書けるとか、せめてJSONをパースできるか正規表現使えるかすれば色々と道は広がるんだけど・・・

まあ外からエンドポイントを叩いたりといったこともできるので、そういうのをやりたければ自前でサーバを用意しなさいということなのだろう。

この辺は最近話題に上ることの多いサーバレスアーキテクチャなサービスを使うと面白そうな気がする。

flow.microsoft.com

無料プランだと

実行数 750 回/1 か月 無制限のフロー作成 15 分ごとにチェック

とのことで、Twitterのチェックってどうカウントされるだろう?と思ってしばらく実行回数のカウントを眺めてたけど、 トリガーのサーチそのものは実行回数に含まれなそうで一安心。

f:id:blue1st:20170102021201p:plain:w300