新年あけましておめでとうございます。本年もマイペースに頑張っていきたいと思います!
よろしくお願いいたします。
さて、新年一発目の記事はタイトルの通りAAからTeamsへメッセージを送信!です!
もう当たり前になりつつありますが、社内でのやり取りや関係会社とのやり取り、お客さんとのやり取りもTeamsやslack、chatworkなどといった”チャット”でのやり取りが多くなってきました。その流れに合わせてRPAからの通知も今まで使っていた”メール”を使うのではなく、”チャット”へもといった流れになりつつあるかと思います。
RPAすげぇ!!!と言われていた2018年はメールでの通知が主流だったかなと記憶しています。笑
それでは本題に入りましょう!
Teamsでの準備
Teamsへメッセージを送信するといっても現状は、チームへのチャネル単位にのみ送信が出来ます。チャネルに送信する際は、毎回新規投稿がされるイメージになります。(=スレッドに追記は出来ない)
ちなみに送信後のメッセージはこんな感じになります!
上記前提をもとに事前準備を始めましょう!とても簡単です!(※Teamsにチームがある前提です)
チャネル作成
それではまず専用のチャネルを作成しましょう。すでに送信するためのチャネルがあるという方は飛ばしてください~。
チャネル名は日本語でも日本語以外でもなんでも大丈夫です!好きなチャネル名にしてください。また、プライバシー設定はプライベートにしても問題ありませんので用途に合わせて利用していただければと思います。
入力が終わりましたら、作成ボタンをクリックして完了です。今回は私は以下のようなチャネルを作成しました。
Incoming Webhookの設定
ここが要になります!
Incoming Webhookとは、外部アプリケーションからのコンテンツをTeamsチャネル内で共有するためのツールだと思っていただければ間違いないです。もっと柔らかく表現すると、チャネルに穴を開けて、通行証をもった荷物のみが通過出来るようにするための仕組みですかね!笑
PowerAutomateなどといったo365の他のツールから連携する場合は、この設定はせずとも連携出来ますよね!
それではIncoming Webhookの設定方法をしましょう!
まずは、メッセージを送信したいチャネル(↑で作成したチャネル)にカーソルを合わせて、右側にある「・・・」をクリックします。そして、下記画像にある「コネクタ」をクリックします。
コネクタの中から、「Incoming Webhook」を探して「構成」をクリックします。
※Incoming Webhookがない場合もあります。その場合はチームにアプリを追加してください。チームの設定画面から追加が可能です!
コネクタ作成画面が以下のように表示されるかと思います。
名前を入力し、アイコン画像を変更したい場合は画像をアップロードして作成ボタンをクリックします。
※名前は以下でいう「AAからの連携テスト」になります!
作成が完了すると以下のようにURLが表示されますので、そのURLをコピーします!※モザイクをかけている部分です。コピーが終わりましたら完了ボタンをクリックして、チャネルに戻りましょう。
チャネルに戻ると以下のように新規投稿がされていると思います。その状態であれば作成完了です!
Automation Anywehreから直接Teamsへメッセージを送信
それではAutomation Anywehreからメッセージを送りましょう!
使うアクションはこれです!
REST Webサービスアクションの中にあるPOSTメソッドです。アクションのプロパティ設定はこれだけでOKです!
それぞれの番号についてちょっとだけ補足します!
①、ここは想像通りTeamsの事前準備パートで作成したURLを貼り付ける場所です。私はURLをマスキングするために変数にしていますが、べた書きでもOK!おそらくほとんどの方は引数でURLをもらってくる形にするのではないかと思っています。
なぜならチャネル単位に送信が出来るからです!
②、ここは③にも影響してきます。JSON形式にします。
③、メンションをしたい場合、ただテキストを送信したい場合でJSONの中身が変わってきますので、詳細を別途書きます。
④、webhookで連携した先の情報などが変数に格納されます。複数の変数or辞書型変数どちらでも選択出来ます。今回は辞書型変数に格納しています。後続処理などでPOSTした結果を利用する場合は、この変数を利用しましょう!
メンションをしたい場合
メンションをつけて送信することが可能です!しかし、チャネル全体へのメンション、複数人へのメンションが出来ません!(2023年1月時点)
上記を前提にして読み進めていただければと思います。
メンションをする場合は、上記③に以下のように記述します。
{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "<at>mention</at>(可変→)さん、「ここにメッセージ」(←可変)"
}
],
"schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0",
"msteams": {
"entities": [
{
"type": "mention",
"text": "<at>mention</at>",
"mentioned": {
"id": "(可変→)sample@ドメイン(←可変)",
"name": "(可変→)表示したい名前(←可変)"
}
}
]
}
}
}]
}
上記ソース内の(可変→)(←可変)で囲まれた部分が可変対応が可能な部分になります。試しに↑の状態で送信してみましょう!そうすると、
このように送信ができます!
テキストを送信したい場合
メンションをせず、メッセージを送信したい場合は以下のように③に記述します。
{
"text" : "AAから送信してみた!"
}
送信した結果は、
このようにメンションされずにメッセージのみ送信することが出来ました。
複数人にメンションをしたい場合は、上記方法を設定の上処理を実行します。Teams側の設定を以下のようにチャネル参加者に依頼すれば、疑似的にチャネル全体へのメンションが可能です。
チャネルの通知からカスタムを選択すると以下の画面が表示されます。
ここで投稿のたびにの部分を、「オン」にすれば完了です。
まとめ
さて、今回はAutomation Anywehreのアクションを用いて、Teamsへメッセージを送信することをやってみました。いかがでしたでしょうか?
ちなみに私が所属している組織では、他のツールや言語も用いておりそれらからも通知が出来るようにするために、powerShellを用いてメッセージを送信しています。
今回はメッセージを送信することに特化した説明でしたが、他にも画像を送付したり、リンク付き文字を送ったり、以下のようなカード形式で送ったりと色々出来ます!
チャネル全体へのメンションが出来るようになったら、需要がものすごく増えるんだろうなぁなんて思いながら本日は終わりたいと思います。
それではまた~
コメント