以前Qiitaに投稿した【PowerAutomate】Yammerのコミュニティで使用しているトピック一覧を作る【暫定版】を整理して見直したものです。
Yammerコネクタの「グループ内のメッセージを取得する (V2)」アクションの出力の body/references 下に取得したメッセージに関連する下表のような情報が含まれています。
その為、「グループ内のメッセージを取得する (V2)」アクションでコミュニティ内の全てのメッセージを取得すれば、使われているトピックの情報も取得することができます。
type | 中身 |
---|---|
topic | トピックの定義 |
tag | ハッシュタグの定義 |
thread | スレッド(トピックとの紐付け含む) |
group | コミュニティの定義 |
user | ユーザーの定義 |
コミュニティ内の全メッセージを取得するフローは、Vivaエンゲージ(Yammer) のコミュニティ内の全てのメッセージを取得する Power Automate クラウドフロー ※「 グループでメッセージを取得する (V2)」アクション対応 超簡易改修メモ で作成しているので、このフローを微修正するだけで取得することができます。
フロー全体
赤枠の部分が要修正箇所です。
フロー修正箇所解説
Initialize variable varAllTopics アクション
- 変数名をわかりやすい名前に変更
- varAllMessages → varAllTopics
- varAllMessages → varAllTopics
Get message in a group アクション
- 「メッセージのスレッドの種類」:true
- トピックはスレッドに設定されるので、true に変更してスレッドのスタートメッセージのみ取得します。
JSONの解析 - reference & アレイのフィルター処理 - topics
{ "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "state": { "type": "string" }, "full_name": { "type": "string" }, "job_title": {}, "network_id": { "type": "integer" }, "mugshot_url": { "type": "string" }, "mugshot_redirect_url": { "type": "string" }, "mugshot_url_template": { "type": "string" }, "mugshot_redirect_url_template": { "type": "string" }, "url": { "type": "string" }, "web_url": { "type": "string" }, "activated_at": { "type": "string" }, "auto_activated": { "type": "boolean" }, "stats": { "type": "object", "properties": { "following": { "type": "integer" }, "followers": { "type": "integer" }, "updates": { "type": "integer" } } }, "email": { "type": "string" }, "aad_guest": { "type": "boolean" }, "thread_starter_id": { "type": "integer" }, "group_id": { "type": "integer" }, "topics": { "type": "array" }, "privacy": { "type": "string" }, "announcement": { "type": "boolean" }, "direct_message": { "type": "boolean" }, "has_attachments": { "type": "boolean" }, "reply_disabled": { "type": "boolean" }, "invited_user_ids": { "type": "array" }, "read_only": { "type": "boolean" }, "description": { "type": "string" }, "mugshot_id": {}, "show_in_directory": { "type": "string" }, "created_at": { "type": "string" }, "members": { "type": "integer" }, "aad_guests": { "type": "integer" }, "color": { "type": "string" }, "external": { "type": "boolean" }, "moderated": { "type": "boolean" }, "header_image_url": { "type": "string" }, "category": { "type": "string" }, "default_thread_starter_type": { "type": "string" }, "restricted_posting": { "type": "boolean" }, "company_group": { "type": "boolean" }, "id_str": { "type": "string" }, "creator_id": { "type": "integer" }, "normalized_name": { "type": "string" }, "permalink": { "type": "string" }, "followers_count": { "type": "integer" } }, "required": [ "type", "id", "network_id", "url", "web_url" ] } }
Compose array of messages from union アクション
トピックの情報を変数に格納します。union関数で結合することで、重複するトピックは格納されません。
union(variables('varAllTopics'), body('アレイのフィルター処理-topics'))