Python

pymsteamsでメンションを送る【Python】

ISHI

pymsteamsを利用して、Microsoft Teamsにメンションを送る方法について解説します。

pymsteamsの基本的な使い方

pymsteamsを使用してTeamsにメッセージを送信する【Python】
pymsteamsを使用してTeamsにメッセージを送信する【Python】

上記記事を参考にインストール等の作業をおこなってください。

サンプルコード

from pymsteams import connectorcard

class MsTeams:
    def __init__(self, webhook):
        self.teams = connectorcard(webhook)

    def create_mention_payload(self, user_id, user_display_name):
        mention_entity = {
            "type": "mention",
            "text": f"<at>{user_display_name}</at>",
            "mentioned": {
                "id": user_id,
                "name": user_display_name
            }
        }
        adaptive_card_content = {
            "type": "AdaptiveCard",
            "body": [{"type": "TextBlock", "text": f"Hello {mention_entity['text']}"}],
            "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
            "version": "1.0",
            "msteams": {"entities": [mention_entity]}
        }
        self.teams.payload = {
            "type": "message",
            "attachments": [{
                "contentType": "application/vnd.microsoft.card.adaptive",
                "content": adaptive_card_content
            }]
        }

    def send(self):
        self.teams.send()

teams = MsTeams("<Microsoft Teams Webhook URL>")
teams.create_mention_payload("user_id", "user_display_name")
teams.send()

user_id : メールアドレス

user_display_name : メンションの表示名(何でも大丈夫です)

上記サンプルコードは以下の処理を行なっています

  1. MsTeamsクラスの初期化: Webhook URLを用いて、Teamsへの接続を初期化します。
  2. メンションペイロードの作成: 特定のユーザーをメンションするためのペイロード(データ構造)を作成します。
  3. メッセージの送信: 構築したペイロードを使用して、Teamsチャネルにメッセージを送信します。

コードの解説

  1. MsTeamsクラス: このクラスは、TeamsのWebhookをラップし、メッセージ送信の機能を提供します。コンストラクタでWebhook URLを受け取り、connectorcardオブジェクトを初期化します。
  2. create_mention_payloadメソッド: このメソッドは、メンション機能を含むメッセージのペイロードを作成します。ユーザーIDと表示名を受け取り、それを用いてTeamsのメンション形式に適合するJSON構造を生成します。
  3. sendメソッド: connectorcardsendメソッドを呼び出し、Teamsにメッセージを送信します。
ABOUT ME
ISHICORO
ISHICORO
Author
中小企業で働くシステムエンジニア。年間100日以上の出張生活(国内外)。
記事URLをコピーしました