空談録

http://artfulplace.net/blogs/ からひっこしつつ

Microsoft Flowをお試ししてみたい

感想を書きたいけど書きづらいくらいGREATなツールであることはわかる

というわけでMicrosoft Flowという複数のサービス間で連携できるサービスが発表されたようです。IFTTTを使っている人にはそんな感じのサービスっていうと伝わりやすいとかなんとか
私がそもそもそのIFTTTを使ったことがないので、ぜひとも使ってる人に比較とか書いてほしいという気持ちですがとりあえず書いていきましょう

ITmediaの記事も出てるのでそっちも貼っておきますね
www.itmedia.co.jp

追記(5/4):5/4 10時時点での使用可能なコネクタ類は書いておきました

どこから使えるの

Automated Workflow & Task Automation | Microsoft Flow
上のリンクから触れます
要企業向けOffice 365

サイトにアクセスするとパッと見テキストボックスがあって一瞬そこからいくのかな!?と錯覚しそうですが、右上の"Sign In"から普通にO365でログインすれば入れます
Office 365とつなぐか聞かれるのでAcceptだかを押せば準備完了です

以下大変長いです。頑張ってください

早速作ってみよう

Preview版ですが招待制でもないので普通に使えます
適当に左上にある"My flows"にいって作ってみましょう。

試しなのでとりあえずTwitter→Slack連携を作ってみます
完成イメージはこんなん
f:id:fantasticswallow:20160430101110p:plain

最初にMy flowsにアクセスするとこんな感じの画面になります
f:id:fantasticswallow:20160430101140p:plain

Templateからも作成できますが今回は空のテンプレートから作りましょう
"Create from Blank"を選択して先に進みます

すると次の画像のようなところに進むのでテキストボックスにフォーカスすると選択肢が出てきます
f:id:fantasticswallow:20160430101447p:plain

入力ソースとして選択できるのは次の通りです(2016/05/04時点。Previewなので当然増える可能性あり)
・Recurrence (タイマー的なやつ)
・Http (どっかから拾ってくる?)
・Http + Swagger (?)
・PowerApps (独自のPowerAppsをソースに取る)
・Box, Dropbox, OneDrive, OneDrive for Business (ファイルが作成されたとき)
・Dynamics CRM Online (レコードが追加されたとき)
Facebook, Twitter (検索で新規ポストが見つかったとき)
Github (Issueが追加、終了、割り当てられたとき)
Instagram (自分が画像をアップロードしたとき)
・MailChimp (メンバー、またはリストが追加されたとき)
・Project Online (プロジェクト、リソース、またはタスクが作成されたとき)
RSS (フィードが更新されたとき)
Salesforce (オブジェクトが追加、または変更されたとき)
・Service Bus (queueかtopic subscriptionがメッセージを受信したとき)
SharePoint Online (ファイルが追加、またはアイテムが追加、変更されたとき)
・Trello (新しいカードがボード、またはリストに追加されたとき)
・Wunderlist (Taskが追加、または期限が切れたとき。リマインダーが通知したとき)
・Yammer (Group、または購読するフィードに新規メッセージが来たとき)

すでに飽きそうなくらい書いてありますが第2弾が残っているのでぜひとも
Swaggerってあれかな…json突っ込むとよしなにしてくれるとかなんかな…よくわからない…

Httpってついてるものがいまいち使い方がわからないので今すぐ書くとPVかせg…無理かな…

とりあえず作成に戻ります。今回はTwitterなのでTwitterを選択しましょう
認証まですると次の画像のように何で検索するか聞かれます
f:id:fantasticswallow:20160430103321p:plain

Twitter Search と同じキーワードが使えるので適当に突っ込みましょう
特に思いつかないので自分宛リプライが来た時で設定しておきます

設定すると「取得した時の処理」か「取得データへの条件式」のどちらかが追加できます
今回は条件式を選びます。Conditionってついてるほうですね

追加すると次のようになります
f:id:fantasticswallow:20160430103959p:plain

条件式は各要素に含まれるフィールドが使えます
今回はTwitterなので本文やユーザー、ID(使う奴いるのかこれ)、作成日時、リツイート数(新規検索でそんなリツイートされるのむずくね…Delay挟むのか)、画像URLとかあります
…ん?待てよ…もしかしてこれ…Twitterのイラスト画像収集ツールとしてはさいk(

フィールドを指定したらそれに対する条件式の種類(一致するとか大きいとか小さいとか含むとか)を選んで、Valueのところに条件の値を書きます
入力例は一番最初の画像を参考にしてください

条件式を設定したら条件に合うとき、合わない時の処理を設定します
Add an actionを押すと最初のソース選択時のようにテキストボックスが現れるのでフォーカスして選びましょう
画像が若干ネタバレ感ありますがまあどうせ大したこともしていないので無視
f:id:fantasticswallow:20160430104827p:plain

一つだけ注意してほしいのが "Load More"のところ。実は最初に表示される処理一覧がすべてではないので「あれ?これはないの?」って思ってももしかしたらLoad Moreすると出てくる可能性があります
割とこの仕様だけよくわかりません。全部出せない制約とかありそうですが

というわけで第2弾、処理の種類の羅列タイムだ!(2016/05/04時点。Previewなので当然増え(以下略))
・Delay (一定時間遅延)
・Delay Until (指定時間まで遅延)
・Http
・Http + Swagger
・Response (レスポンスを返す(どこに?))
・Azure Blob, Box (ファイルの作成)
Dropbox, Google Drive, OneDrive, OneDrive for Business (ファイルの作成、ファイル/フォルダーの列挙)
・Dynamics CRM Online (レコードの作成、レコードの取得)
Excel (行の取得、行の挿入)
Facebook (タイムラインの取得、新しいポスト)
FTP, SFTP (ファイルの作成、ファイル/フォルダーの列挙)
Instagram (自分のプロフィール、最近のメディアの取得)
GitHub (Issueの作成)
Google Drive (ファイルの作成、ファイル/フォルダーの列挙、Excelファイル?の行の取得、挿入)
・MailChimp (メンバーの追加、削除、メンバー情報の更新、リスト、キャンペーンの作成)
・Mandrill (現在のユーザー情報、スケジュールされたメッセージの取得、メールの送信)
Microsoft Translater (文章の言語識別、テキストを音声に、文章翻訳)
・Office 365 Outlook, Outlook.com (連絡先、イベントの追加、メール、approval emailの送信)
・Office 365 Users (管理者、自分の情報の取得)
Salesforce (オブジェクトの作成、取得)
・SendGrid (レシピ?の追加、メールの送信)
・Service Bus (メッセージの送信)
SharePoint Online (ファイル、アイテムの作成、アイテムの取得、フォルダーのリスト取得)
・Slack (メッセージの送信)
SMTP (メールの送信)
SQL Azure (ストアドプロシージャの実行、行の取得、挿入、複数行の取得)
・Trello (カードの追加、削除、更新、カードのIDの取得、ボード上のカードの取得)
・Twilio (メッセージの取得、Listの取得、メッセージの送信)
Twitter (新しいツイート)
・Wunderlist (list, note, task, subtaskの作成、取得とかいろいろ…)
・Yammer (すべて、Group, 購読フィードのいずれかのメッセージ取得、新規メッセージの作成)

数多すぎるんだよおおおおおおおお
こんなもん公式で羅列しとけやあああああああ

読みづらいって? どうにかしてください…力尽きました…

追記:そういえばこの処理ですが、複数の処理をつなげることができます。
例えばTweetの本文をMS Translaterに投げて翻訳してExcelに投げるとか
そのため取得する関係の処理が含まれています。一個だと取得処理があっても謎ですがつなげられると考えると自然自然

追記2(20:00):気が付いたら増えてたので追加しておきました。10時間前からInstagram, Outlook.com, Trelloが増えた感じ

話を戻してSlackにポストしましょう
Slackを選んで認証します。すると入力欄が現れるのでポチポチ入れましょう
Channel Nameは#hogehugaみたいにいれとけばOK…だと思います

f:id:fantasticswallow:20160430111047p:plain

メッセージなどの各種入力欄にも取得したオブジェクトのフィールドが使えます。なのでツイートを受信したらその内容を簡単に送れます
画像みたいにフィールド間に文字入れるとかもOK

また下に"・・・"みたいなのがありますが、ここで詳細なオプションが設定できます。SlackだとBotの名前とかアイコンとか入れれます

設定できたら下の"Flow name"に名前をつけて"Create Flow"を押します。
するとこんな感じになります。無事完成です
f:id:fantasticswallow:20160430111426p:plain

編集するときはEdit Flow押したりMy flowsの最初のページで選択したりして編集モード→Update flowでOK

実際動くかやってみよう

条件は"自分宛リプライで自分がツイートしたもの"になってるので適当にリプライしてみます
とりあえずこれ

で、ちょっと待ってみるとSlackにこんなものが追加されています
f:id:fantasticswallow:20160430111812p:plain

うまくいっていますね


というわけでMicrosoft Flowについてでした
ブログ自体はくっそ時間がかかりましたが、実際やってみるとそんなに難しくもなく10分20分でサクサク作れるので便利です
何かしらに活用していきたいなぁとは思ったり

追記:そういやなんでGitHubは触れるのにVSTSは触れないんですかね…………

若干裏での作業が遅延気味なので努力しないと…

この辺で