RPAで作ったBotからMicrosoft Teamsに投稿してみる（Automation Anywhere編）

# はじめに
Microsoft Teamsを社内やチームのコラボレーションで使用しており、
情報収集やイベント運営などの自動化のために、MS Flowで他システムと連携して自動投稿させています。
運用自体はうまく行っていたのですが、イベント管理サイトからデータを落として来て集計したものを投稿したくなったり、
業務量も増えてきて、ワークフロー全体を自動化していきたいというニーズが高まってきましたので、RPAで諸々の処理を自動化することにしました。
その前準備としてRPAのAutomation Anywhereでまず、Microsoft Teamsに投稿する部分を作ってみました。

## 参考にしたページ

今回作成した際に下記の記事を参考にさせて頂きました。
画面のスクリーンショットも日本語環境で掲載されているので、良ければこちらも試してみてください。

[Microsoft Teams に PowerShell で投稿してみる - Qiita](https://qiita.com/miyamiya/items/ccae505b8e97b5b532a7)

下記のページも分かりやすいです。
[Microsoft Teams API (Incoming Webhook) で投稿 - Qiita](https://qiita.com/wataash/items/72b49509c3964294dd67)

## 試した環境
Automation Anywhere Enterprise 11.3.2 日本語版
Microsoft Teams (Office 365)

# おおまかな流れ （所要時間10分～15分）
- Microsoft Teams側の設定 （Webhookコネクタの追加）
- URIをコピーしてメモ帳などに保存
- 投稿するための中身（今回はJSON形式）を用意する
- Automation Anywhere Enterprise ClientでBot作成
    - REST Web ServiceコマンドをBotに追加
        - メソッドをPostに設定
        - URIを記入
        - リクエスト -> ヘッダーのContent-Typeを設定
        - PARAMETER -> Post にJSONを記入
        - レスポンス -> レスポンスの保存先にサーバーからの応答メッセージを格納する変数を設定
        - PARAMETER -> リクエストの送信 で、投稿できるかテスト

# つくり方
## Microsoft Teams側の設定 （Webhookコネクタの追加）
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/ff7f6983-f832-3170-4949-08638fde611a.png)
Botに投稿したいチャンネルの右側にある「・・・」をクリック。


![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/b0b053b1-cc28-c110-f94d-8e8c1351d353.png)
上記のようなメニューが出るので、「コネクタ」をクリック。


![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/353d8bdc-df42-da58-937a-216f95439f0d.png)
「Incoming Webhook」を追加。

![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/a3f32a25-fdc2-e138-1697-8c70e3a385fe.png)
書いてあることを念のためざっと確認して、インストール を押す。

![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/b50ac343-4757-1904-ca32-9449e842b58b.png)
名前をつけます。ここで設定した名前で投稿されるようになるので、恥ずかしくない名前をつけましょう。
投稿時に使用されるアイコンも変えられます。
設定が終わったら「完了」を押す。

## URIをコピーしてメモ帳などに保存

![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/c8a0e2cb-b798-54aa-f876-1b7d3a986cb3.png)
あとで使う大事なURI（≒URL)なので無くさないようにしましょう。

「完了」を押したらMicrosoft Teams側は準備完了！

## 投稿するための中身（今回はJSON形式）を用意する
とりあえず今回はこんな感じで。
`{
 "text"  : "AA Clientからのメッセージ投稿テスト"
}`

Markdown記法も使えるようです。なお、改行は\nで可能です。

JSONって何？という方はこちらを参照。
[非エンジニアに贈る「具体例でさらっと学ぶJSON」 ｜ DevelopersIO](https://dev.classmethod.jp/etc/concrete-example-of-json/)

## Automation Anywhere Enterprise ClientでBot作成
さあ、Bot組むぞ！と気合が入るかもしれませんが、コマンド1個置いて設定するだけの作業です。

#### REST Web ServiceコマンドをBotに追加
新規Botを作成したら、
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/110a980f-421f-49a6-8bfb-3c59fe180652.png)
ちょっとクールな青いアイコンのコマンド。これを追加します。

#### メソッドをPostに設定、URIを記入
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/948c3d0f-6286-1204-836e-63c8d127951c.png)
こんな設定画面が開きますので、
「URI：」の欄に先ほど保存しておいたURIを貼りつけます。
「メソッド：」を「POST」に変更。

#### リクエスト -> ヘッダーのContent-Typeを設定
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/c2c4f395-4597-05df-a244-e3f8da046a0f.png)

「リクエスト」のタブへ移動し、左側のメニューから「ヘッダー」を選択。
「Content-Type」を「application/json」へ変更。
（他のContent-Typeも使用できますが、今回はJSONで試します。）

#### PARAMETER -> Post にJSONを記入
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/65ee726f-42a5-9f74-88c1-5f8ce6fde242.png)
こんな感じで貼りつけます。
変数も使えるので、実際使う場合は先にメッセージを生成してから変数で受け渡ししようと思っています。
#### レスポンス -> レスポンスの保存先にサーバーからの応答メッセージを格納する変数を設定
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/88169455-3235-6545-4c11-12cddc9a066d.png)

なんでも良いですが、投稿に失敗した時に分かるようにしておいたり、後続の処理を変えられるようにしておいたほうが良いでしょう。

#### PARAMETER -> リクエストの送信 で、投稿できるかテスト
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/1f93da65-0b01-78be-b36a-a8c29475cd97.png)
「PARAMETER」のタブで、実際動くか試してみることが出来るボタンがあるので、押してみましょう。

#### 完成！！
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/0a542ae0-d0b5-988a-ca17-334d610469d3.png)
無事、投稿されたことを確認したら「保存」を押して完了。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490870/8e2ed6e2-e4b8-b715-cd2d-1fe92865a465.png)
Bot Creatorに追加したコマンドはこれ一つだけです。

# 次回予告？
次回はこれを部品として使えるように改造して、業務フローに組み込んでみようと思います。



#追記
以下の方法で画像の埋め込みも出来るようです。
[【MS Teams】Incoming Webhook経由で画像を送信する方法 - Qiita](https://qiita.com/m_hama123/items/c40c8f5271ca03fc57e9)