Slackで利用できるreminderのような機能をTeamsで実現したいのですが、公式にはないみたい。
ないみたいなのでAWS Lamda + cloud watchの組み合わせで実現しました
今回はPythonで実装しました。
MicrosoftのFeeoback Forumに同じように思ってる人もいるみたい。
https://microsoftteams.uservoice.com/forums/555103-public/suggestions/17062255-add-team-wide-reminders
今作ってるのかな?
コメント見た限り、待望してる人は多そう。
作業手順
①teamsの特定チャンネルにincoming web hookを設定し、post先URLを作成
②作成したURLへ特定文字列をpostするlamda関数を実装
③cloudwatchに作成したLamda関数を呼び出すルールを追加
※下記の「参考にした記事」で読んだとおりに作業したので、詳細はリンク先の記事を参照してください。
lamda関数を実装する際requestsモジュールを利用するのですが、Pythonの標準モジュールではないのでpipインストールしたプロジェクトをzip形式でアップして利用できるようにしました。
postする際に、文字コードの指定がないので怒られます。
data="Teamsに送信するテキスト".encode("utf-8"))
上記のように、文字コード指定しておくと問題ありません。
実装コード
import json
import requests
def lambda_handler(event, context):
data = '{"text": "Teamsに送信するテキスト"}'.encode("utf-8")
response = requests.post('https://outlook.office.com/webhook/f5~(この部分可変)', data=data)
Lamdaコンソールイメージ
実装したソースと、requestsモジュールインストールしたのでフォルダがいくつか存在している状態です。
参考にした記事
TeamsへのWeb Hook導入方法
ラムダへモジュール追加
postした時のエンコードエラー対応
claod watchの時間設定方法