2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SlackのReminder機能をTeamsで実現する

Last updated at Posted at 2020-03-15

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モジュールインストールしたのでフォルダがいくつか存在している状態です。
image.png

参考にした記事

TeamsへのWeb Hook導入方法

ラムダへモジュール追加

postした時のエンコードエラー対応

claod watchの時間設定方法

2
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?