Vivaエンゲージ(Yammer)のプライベートメッセージを使うシーンは?
Twitter等のSNSにDM(ダイレクトメッセージ)機能があるように、Vivaエンゲージ(Yammer) にもプライベートメッセージ機能があります。
Microsoft365の一部として組み込まれた現状ではTeamsが使えますから敢えてYammerのプライベートメッセージを使うケースは非常に少ないかもしれません。
(2023年1月にTeamsで大規模障害が起きた際にはYammerは問題なく利用できたためプライベートメッセージが代替の連絡手段として少しだけ役立ったことがありました。)
もはや第一線で活躍するシーンは少ないかもしれませんが、プライベートメッセージをPower Auotmateから送信できるか? 好奇心から調べてみましたので記事にまとめました。
プライベートメッセージを活用しているという方いらいっしゃったら、どんな使い方をされてるのかぜひコメントいただけると嬉しいです。
Yammer REST API を使えば送信できる
基本的にはこちらと同じアプローチでSharePoint コネクタの「SharePoint に HTTP 要求を送信します」アクションを使って、Yammer REST APIでメッセージを投稿すれば実現できそうです。
※ SharePoint コネクタ「SharePoint に HTTP 要求を送信します」アクションでYammer REST APIを使う事はアクションの想定外の使い方と思われます。ある日突然使えなくなる可能性がありますのでその点は注意です。
前回と違い、プライベートメッセージについてはドキュメントに記載がありました。
learn.microsoft.com
一応今回もchatGPTに聞いてみました。
パラメーター | 説明 |
---|---|
body | メッセージ本文 |
direct_to_user_ids | 送信先ユーザーID |
パラメーター2つがあればで送信できることがわかりました。 この情報をもとにPower Automate フローを作成してみました。
フロー全体
ポイント解説
Yammer REST API でユーザーIDを取得する
メッセージを送るユーザーのIDが必要です。ここでのIDはYammer独自の内部的なIDになります。 その為、Yammer REST API をつかってメールアドレスからユーザーIDを検索します。
パラメーター | 説明 |
---|---|
サイトのアドレス | https://www.yammer.com/ |
方法 | GET |
URL | /api/v1/users/by_email.json?email=ここにメールアドレス |
ヘッダー | 未設定 |
ボディ | 未設定 |
アクションの出力はアレイになっているのでfirst関数で1つめのidを取得します。
first(body('SharePoint_に_HTTP_要求を送信します-userId検索'))?['id']
テナント内に存在しないメールアドレスを指定した場合はAPI実行でエラーが発生しますので、実行条件の構成で分岐させています。
JSONの改行を適切に処理する
メッセージに改行が含まれる場合、そのまま渡してしまうと正常にメッセージ送信されません。 JSONの解析アクションを通すことで、適切に改行が処理されます。 こちらのページを参考にさせていただきました。
cloud.config Tech Blog 「Power Automateで改行を含むJSONデータを扱う #PowerPlatformリレー」
tech-blog.cloud-config.jp
プライベートメッセージを送信する
パラメーター | 説明 |
---|---|
サイトのアドレス | https://www.yammer.com/ |
方法 | POST |
URL | /api/v1/messages.json |
ヘッダー | 未設定でOK |
ボディ | 上記のjson |
こちらのjsonで送信できます。
{ "body": "メッセージ", "direct_to_user_ids":"宛先ユーザーid" }
実行結果
問題なく送信できました。