Adaptive CardsをOutlookに対して送ってみる(失敗)
さて、先ほどこのようなエントリを書きました。
Teamsで完結する簡単なアンケートをAdaptive Cardsで作成する
実は当初「回答率重視するならメールの方がよくね?」と思って、Outlookでの実装を検討しましたが、挫折しました。その経緯をまとめます。
注意点1. OutlookだとPower Automateに組み込みのアクションがない
ただ、これは難しいことはなく、Adaptive Cardsの生のJSONを作成して、OutlookのBody部分に送るだけです。
OutlookでもAdaptive Cardsを送りたい人のために – MoreBeerMorePower
注意点2. OutlookだとAdaptive Cardsからの回答を受領するのに一工夫必要
Teamsでは、気軽にメンバーに質問を送って回答を受領できていましたが、これはAdaptive Cardsの"Action.Submit"という機能を利用したもの。これは簡単に言うと、メンバーに質問を投げ、回答を待ち受けるプロセスもセットになっているものなので、待ち受けの事をあまり考えなくていい(その代わり、同期的な処理になるので、Power Automateで並列実行処理をONにしなければならない)のですが、Outlookではこれが使えず、代わりにAction.Httpを使う必要がある。
Action.HttpはAction.Submitと違ってメンバーに質問を投げっぱなして、回答は別プロセスで受け取るという非同期処理となります。
メンバーが回答するまで待ち受け処理が走り続けるAction.Submitと違って並列実行的な事は考えなくてもいいですが、その代わりに待ち受けサーバー的なものを用意しないといけません。もちろん、IaaSではなくAzure functions等のFaaSでいいのですが、多少面倒ですね。
ちなみにOutlookのAdaptive Cards実装は、Microsoftが定めている標準的なAdaptive Cards実装とは多少ズレがあるそうです。ここらへん、Githubで質問したら開発者の方が丁寧に答えてくれました。メモ→Please add not that Outlook(desktop client) is NOT full support actionable message. · Issue #880 · OfficeDev/outlook-dev-docs
注意点3. クライアントによってはAdaptive Cards利用できない?
注意点っつーかこれが原因で挫折しました。
なぜかOutlook(Desktop)ではAdaptive Cardsが表示できず、
Outlook for iOS/Outlook Web AppではOK。
Thunder Birdでメールの中身をのぞいてみると、ちゃんとデータは入っているっぽい…。
そこで、別の人に対して送ってみると、なんとその人はは全てのクライアントで表示できない…。状況をまとめると以下。
送信者 | 受信者 | 送信ツール | 受信ツール | Adaptive Cards表示 |
---|---|---|---|---|
私 | 私 | Power Automate | Outlook(Desktop) | ×表示されない |
私 | 私 | Power Automate | Outlook for iOS | ○表示される |
私 | 私 | Power Automate | Outlook Web App | ○表示される |
私 | 協力者 | Power Automate | Outlook(Desktop) | ×表示されない |
私 | 協力者 | Power Automate | Outlook for iOS | ×表示されない |
私 | 協力者 | Power Automate | Outlook Web App | ×表示されない |
この事象、よく分かってないです。
受信ツールによって表示される、されないが変わるのであれば、所定のツールを使えば解決だが、協力者の状況を見る限りそうではなさそうだし…。まさか、自分自身に送ったAdaptive Cardsしか動作しない、ということはないだろうし…。あと、アンケートの回答率を上げる、という目的であれば「特定の受信ツールでしかうまくいかない」のは良くないですね。
まだAdaptive Cardsを勉強し始めたばかりだし、検証も足りていない。GraphAPIでメールを送ったりと、送信ツールを変えれば解決するかもしれないので、もう少し悩んでみます。
ディスカッション
コメント一覧
まだ、コメントがありません