Office 365を知る参考書(?)

Office 365とかAzureについていろいろ書きたいと思います。別に参考書ではありません。韻踏んでみたかっただけです。

とっても簡単!Advanced REST clientを使ってIncoming Webhook経由でTeamsに投稿する

本格的に寒くなりましたね〜〜。(毎度天気の話ですいません。。)
私は雪国出身(今は関東在住)なのですが、それでも東京寒いな〜と感じます。周りのマスクの着用率も日に日に増えてきている気がてますので、手洗いうがいを心がけましょう。

さて、前回の投稿でIncoming Webhookのことを書く、と書いたので、Advanced REST clientというGoogle Chromeのアドオンを使ってTeamsのIncoming Webhook経由で投稿するというないようについて備忘録として書こうと思います。
昨今様々なクラウドサービスある中でAPI経由で何かする、と言ったことは非常に良くありまが、その際に、Advanced REST clientのようなツールを使えると、curlなどコマンドを叩かなくてもAPIを実行できるというのは非常に便利です。知らない方は参考にしていただければ幸いです。

事前準備

まず前提のTeamsのお話。Teamsの構造ですが、Slackとは違い「チーム」-「チャネル」の二階層があります。(Slackは一階層)
チームは各部署、チャネルは部署のチームごとや部署内での情報共有の目的別に作るといった使い方が良さそうですね。
それでは、本題に入りましょう。今回利用するIncoming Webhookですが、チーム単位ではなく、チャネルごとに設定する必要があります。
今回は以下のように「Hamburger」チームに「Cheese Burger」チャネルを作っておりますので、このチャネルにIncoming Webhookを追加してHTTP経由で投稿できるように設定しましょう。
まず、チャネル名の右の「・・・」をクリックし、コネクタをクリックします。

f:id:takeru55555:20171113203058p:plain

コネクタを選択できますので、「Incoming Webhook」を構成します。※前回の投稿で触れたように、テナント全体の設定でIncoming Webhookが許可されていないとここで出てこないため、ご注意ください。

f:id:takeru55555:20171113203203p:plain

任意の名前や画像を選択し、作成をクリックします。

f:id:takeru55555:20171113203644p:plain

作成をクリックすると、URLが表示されるので、コピーボタンでコピーし、控えておいてください。※このURLを知っているとこのチャネルに投稿できてしまいますので、大切に保管しましょう

f:id:takeru55555:20171113203834p:plain

最後に完了をクリックします。
※すぐSlackと比べるのは良くないのですが、そういえばOutgoing Webhooksはないんですね。

そして今回の主役のもう一つ。Advanced REST clientをインストールしてみましょう。
Google Chromeのアドオンとして「Advanced REST client」を追加します。

f:id:takeru55555:20171113204426p:plain

ここまでで準備が整いました。

HTTP経由で投稿してみる

それでは早速投稿してみましょう。Advanced REST clientを立ち上げ、以下のように設定します。

  • Method: POST
  • Request URL:Incoming Webhookを追加した時に発行されたURL

また、Bodyタブをクリックし、以下のように設定します。

  • Body content type:application/json
  • Property name:text
  • Editor view:任意ですが、JSON editorがわかりやすいと思います
  • Property value投稿したい任意のテキスト※今回は「Cheeseburgers are so delicious!!」

f:id:takeru55555:20171113205721p:plain

「SEND」ボタンをクリックし、200が返って来ればOKです。

f:id:takeru55555:20171113205908p:plain

Teams側にもちゃんとCheeseburgers are so delicious!!が投稿されてますね。

f:id:takeru55555:20171113210002p:plain

非常に簡単ですよね。Incoming Webhookを利用することで、システムで異常を検知したらTeamsに投げると言ったことも比較的容易に実現することができます。

また、Advanced REST clientを使うことで、非常に簡単にAPIを叩けるので、私は良くAzure FunctionsやAzure Automationのテストをするのに利用していたりするので、重宝しております。

本日はここまでとなります。

次回は別の方法でTeamsに投稿するやり方として、これまたOffice 365のサービスとして提供されているMicorosoft Flowを利用した投稿について書ければと思います。
(飽きっぽいと良く言われるB型なので、続けられるように頑張ります。)

ではまた次回。