6
1

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 5 years have passed since last update.

SORACOMAdvent Calendar 2019

Day 21

SORACOM LTE-Mボタンを押して、Slackのワークフローを発動させる

Last updated at Posted at 2019-12-21

これは、SORACOM Advent Calendar 2019の21日目の記事です。


SORACOM FunkとSORACOM Napterは神。
だと思っている人です。


前説

ボタンネタで書こうと思ったものの、何を書くかなーと悩んでました。

そういえば、ボタンを使って承認するって話しあったなー。
承認するといえば、ワークフロー。
そういえば、最近Slackにワークフローできたなー。

よし。ボタン押したら、SORACOM Funk経由で、Lambdaを呼び出して、SlackにPOSTして、ワークフローを起動させよう。

っていうのをやってみた話です。

Funkが使える #しろボタンと#ひげボタン はもちろんですが、
AWS IoT-1ClickからLambdaを呼び出すことができるので、#あのボタン でも使えます。

構成図

構成図

ソース

githubにおいてあります。
https://github.com/Kenichiro-Wada/advent-calendar/tree/master/soracom-2019

AWS LambdaのNode v12.xランタイムにおいて動作確認しています。
デプロイはServerless Frameworkで実施してます。

Slackのチャネル名、チャネルID、下で取得するSlackのトークンはAWS Key Management Service (KMS)で暗号化しています。
serverless-kms-secrets を導入する手順
を参考にしました。

SORACOM側設定

SORACOM Funkに作成したLambdaを
SORACOM Funkを使ってみた。 に書いてあるので、こちらをみてください(宣伝)

Slack API設定

以前使ったことがあるIncoming Webhookだと、できなそうだったので、APIを叩いています。
利用するために、トークンが必要なので、ワークスペースにAPIの設定を行って、取得しています。

https://api.slack.com/apps
にアクセスして、Create New Appをクリックして、追加するワークスペースと、名前を設定
slack1

完成したら、左ペインの OAuth & Permissions
を選んで、権限を付与していきます。

slack2

こんな感じ

slack3

権限設定が終わったら、
OAuth Tokens & Redirect URLs にあるInstall App to Workspaceを押して、トークンを生成します。

上記の通り、生成したトークンは、Lambdaの環境変数にAWS KMSを使って暗号化した上でセットしています。

Slackワークフロー

Slackのワークフローの作り方は、こんな感じ。
公式

ワークフロービルダーを起動して、作成開始
SlackWorkflow1

名前をつけます
SlackWorkflow2

発動条件を決めるます
ワークフローの発動条件としては、以下がありますが、今回は絵文字リアクションを設定させています・

  • チャンネルへの追加
  • アクションメニュー
  • 絵文字リアクション
SlackWorkflow3

発動させるチャンネルと、絵文字を設定します。
SlackWorkflow4

そのあとのアクションを決めます。
今回はフォーム作成する にしています。
SlackWorkflow5

表示内容などを設定します。
SlackWorkflow6

で、完成。あとは公開すればOK
SlackWorkflow7

動作

今回ボタンの動作で、以下のようなアクションにしています。

  • シングルクリック : 承認 -> 承認メッセージ追加
  • ダブルクリック : 否認 -> 依頼メッセージに、NGアイコンを表示して、それを条件に否認理由入力するためのワークフロー発動させています
  • ロングクリック : 保留 -> 依頼メッセージに、ハンドアイコンを表示して、それを条件に否認理由入力するためのワークフロー発動させています

シングルクリック(承認)の場合
承認

ダブルクリック(否認)の場合
否認

ロングクリック(保留)の場合
保留

自分個人のSlackワークスペースで作ってみたので、他にユーザーいないので。自己承認・自己否認になってますw

実際のところは・・・。

使うのか・・・と言われると。。。
こういうこともできるよってネタになります。

作ってて、思ったのですが、
最後のポストしか承認できないから、
むむむ。上申の印鑑もらう行列と同じような承認もらう行列になってしまうー。

注意事項

Slackのワークフローは、無料プランでは利用できません。
有料プランにする必要があります。はい。


最後に

あまりボタンのことを書いてなかったのでw、Twitterには呟いたんですが、ボタンについての所見等々を

SORACOM LTE-M Button powered by AWSが発売されてから約1年たち、Enterprise buttonButton Plusが発売されて、色々な使い方ができるようになった気がします(自分では大した事例出せないのが申し訳ない)。
また、IoT1-Click経由でしかLambdaを呼べなかったけど、Funnel->AWS IoT Coreで呼ベるようになり、そして、Funkを使うことで、簡単にLambdaを呼べるようになりました。
いや、ほんとすごい。

通信環境も、今年も押しまくってた時期があったんですが、1年でだいぶ改善された感じがしてます。あれ、以前より通信の成功率上がったな感(えらい上目線w)。

来年、2020/02/18にはSORACOM Technology Camp 2020があり、今回もナイトイベントあるらしいので、そこでLT募集でもあったら、募集申し込んでみようかと思う2019年の師走の午後でした。

6
1
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
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?