top of page
  • ccf代表

MS Teamsへ表形式のメッセージを送る

 MS Teamsにメッセージを送る方法を模索していましたが、意外に簡単にできたので、”表形式”で送ることにも挑戦してみました。

 私は特定の株の前日から1週間分を取得して、所有株価との差分を出すことにしました。

 

 Teamsへメッセージを送るのは、以下の手順が必要です。

  1. Teamsのチャネルに”Incoming-Webhook”の”コネクター”を追加します。

  2. コネクタURLに向けて、送りたいメッセージをPostします。


 また、表形式にするには、HTMLタグをつけた形式でメッセージを作る必要があります。実は改行コードも解釈されないので<BR>などをつけて上げる必要があります。


 

コネクタURLへメッセージを送る

 今回はPythonを利用しましたが、参考資料は以下のサイトです。

https://learn.microsoft.com/ja-jp/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using?tabs=cURL

 使用するパッケージは「pymsteams」です。参考にしたサイトは以下のURLですが、ほぼそのまま使えます(笑)

https://algorithm.joho.info/programming/python/pymsteams-install/

こんな感じです。簡単です。先人に感謝!!

import pymsteams

def sendTeamsMessage(teams_url, send_message_title, send_message_body):
    # メッセージを送信
    teams = pymsteams.connectorcard(teams_url)
    teams.title(send_message_title)
    teams.text(send_message_body)
    teams.send()

 

表形式のメッセージを送る

 Teamsへ送る”pymsteams”のメッセージにはいろいろな形式を送ることができますが、敢えて少し難しい方で対応してみます。


使用するパッケージ

BeautifulSoup4


利用するメソッド

new.tag()

append()


想定する利用シーン

 CSVファイル形式の変数を引数として、要素を一つずつ取り出して、表形式に変換します。

import bs4
    
def covertToHtmlTable(df):
    # soupオブジェクトを作成
    soup = bs4.BeautifulSoup('', 'html.parser')

    # tableタグを作成
    table_tag = soup.new_tag('table border="2"')

    # 行ごとに取り出す
    for index, data in df.iterrows():
        # trタグの用意
        tr_tag = soup.new_tag('tr')
        # 行ごとのデータに対するループ
        for d in data:
            # 一番上の行はthタグに収める
            if index == 0:
                th_tag = soup.new_tag('th')
                th_tag.string = d
                tr_tag.append(th_tag)
            else:
                td_tag = soup.new_tag('td')
                tr_tag.append(td_tag)

        # trタグをtableに追加
        table_tag.append(tr_tag)

    # tableをsoupに追加
    soup.append(table_tag)

        # 文字列に変換して戻す
    return str(soup)

 参考にしたサイトは以下のとおりです。ほぼそのままです(笑)

https://kiironomidori.hatenablog.com/entry/beautifulsoup-csv-table

 この関数の戻り値をそのままTeamsに送れば、表形式で表示されます。


閲覧数:1,681回0件のコメント

最新記事

すべて表示
bottom of page