slackで、特定の絵文字を押されたら、指定のチャンネルに同じ投稿をして絵文字の押された回数も表示する。

slackで、特定の絵文字を押されたら、指定のチャンネルに同じ投稿をして絵文字の押された回数も表示する。

slackで、特定のチャネルに投稿があったら、指定したチャンネルに同じ内容のコピー投稿をする

DynamoDBで、絵文字を押された投稿のタイムスタンプを保持(ID代わり)

–table-name SlackMessageTracking :テーブル名
–attribute-definitions :キーのデータ型を定義(source_ts は文字列 S)
–key-schema :パーティションキーの指定(source_ts をHASHキーとして使用)
–billing-mode PAY_PER_REQUEST :オンデマンド料金で運用(推奨)

lambdaに、DynamoDBへの権限を付与。

vscodeでmermaid記法でシーケンス図を書いて、画像出力

監視対象チャンネルを、全ての公開チャンネルに変更
以下の処理を追加
1, 絵文字が押される度に、全公開チャンネルを取得して、投稿先チャンネルリストとする。
2, 投稿先チャンネルとアーカイブ済チャネルは除外
3, slackアプリ追加されていないチャネルなら、追加する
※時間がかかるのでlambdaタイムアウトを10分に変更。conversations_join(slackAPI)は1分間に50リクエストまでなのでsleepで調整。

なので、新規チャンネルの場合は
1, 新規チャンネルを作成
2, 他のチャンネルで絵文字を押す。lambda実行されて、新規チャンネルにslackアプリ追加される。
3, この状態になったら、新規チャンネルでも絵文字を押されれれば、lambda実行がキックされる。