Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

Slackで入力フォームを作る方法についてご紹介

投稿日:

 

<目次>

(1) Slackで入力フォームを作る方法についてご紹介
 (1-1) STEP0:前提条件
 (1-2) STEP0:前提条件
 (1-3) STEP1:Slackでボット用のアプリを作成
 (1-4) STEP2:Python環境の準備#1【任意】
 (1-5) STEP4:Pythonプログラムの作成#1:環境変数
 (1-6) STEP5:Pythonプログラムの作成#2:ロジック
 (1-7) STEP6:疎通テスト

(1) Slackで入力フォームを作る方法についてご紹介

(1-1) 概要・ポイント

(ポイント①)
SlackのBlock Builderを用いて簡単にGUI部品のJSONを作成する事ができます。
 
(ポイント②)
このBlock Builderで作った内容を、chat_postMessageといったメソッドのパラメータ「blocks」に指定する事で、簡単にGUI部品をメッセージに組み込んで投稿ができます。

(1-2) STEP0:前提条件

・①Slackの初期セットアップ(FreeでもOK)が済んでいる
→アカウント登録、ワークスペースの作成が済んでいる

 

(1-3) STEP1:Slackでボット用のアプリを作成

→こちらの記事(SlackのAPIでメッセージを投稿する方法)のSTEP1に同じ。
 

(1-4) STEP2:Python環境の準備#1【任意】

→こちらの記事(SlackのAPIでメッセージを投稿する方法)のSTEP2に同じ。
 

(1-3) STEP3:Python環境の準備#2

→こちらの記事(SlackのAPIでメッセージを投稿する方法)のSTEP3に同じ。
 

(1-5) STEP4:Pythonプログラムの作成#1:環境変数

→こちらの記事(SlackのAPIでメッセージを投稿する方法)のSTEP4に同じ。
 

(1-6) STEP5:Pythonプログラムの作成#2:ロジック

ここが今回の一番のポイントです。以下にPythonのサンプルプログラムを紹介します。Visual Studio Codeに貼り付けて動かしてみてください。
(サンプルプログラム)
import slack
import os
from pathlib import Path
from dotenv import load_dotenv

# 親フォルダパスを取得
file_path = Path(__file__).parent
# 「.env」ファイルのパスを設定
env_path = file_path/'.env'
# 「.env」ファイルのロード
load_dotenv(dotenv_path=env_path)

# トークンを指定してWebClientのインスタンスを生成
client = slack.WebClient(token=os.environ['SLACK_TOKEN'])
# chat_postMessageメソッドでメッセージ投稿
client.chat_postMessage(channel='#it-blog2', blocks='[{"type": "section","text": {"type": "mrkdwn","text": "こんばんは! @Rainbow Planet はこの今日の夕食をラーメンにするか牛丼にするか迷っています。どっちがよいと思いますか?"}},{"type": "actions","elements": [{"type": "button","text": {"type": "plain_text","text": "","emoji": true}},{"type": "button","text": {"type": "plain_text","text": "","emoji": true}}]}]')

●ポイント

JSON部分を綺麗に整形すると次のようになっています。
最初のブロックは”type”: “section”でメッセージの枠組みを作り、メインのメッセージを設定しています。次のブロックは”type”: “actions”で「対話的要素」(ボタン、入力ボックス、カレンダなど)を定義していきます。今回は”elements”で”type”: “button”を指定してボタンを作っています。

{
  "type": "section",
  "text": {
    "type": "mrkdwn",
    "text": "こんばんは! @Rainbow Planet はこの今日の夕食をラーメンにするか牛丼にするか迷っています。どっちがよいと思いますか?"
  }
},
{
  "type": "actions",
  "elements": [
    {
      "type": "button",
      "text": {
        "type": "plain_text",
        "text": "ラーメン",
        "emoji": true
      },
      "url": "https://tabelog.com/ramen/rank/"
    },
    {
      "type": "button",
      "text": {
        "type": "plain_text",
        "text": "牛丼",
        "emoji": true
      },
      "url": "https://nlab.itmedia.co.jp/research/articles/177964/"
    }
    ]
}

(1-7) STEP6:疎通テスト

プログラムを実行すると次のように、ボタン付きのメッセージが投稿されます。
(図100)
更にボタンをクリックすると、それぞれラーメンのランキングページと、牛丼のランキングページに飛びます。

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

Anaplanのトレーニングの受講方法について

  <目次> (1) Anaplanのトレーニングの受講方法について  (1-1) 受講方法の概要  (1-2) Anaplan Communityの登録手順  (1-3) Anaplanの …

排他制御における楽観ロックと悲観ロックについて

<目次> (1) 排他制御における楽観ロックと悲観ロックについて  (1-1) 楽観的排他制御   ●概要・仕組み   ●イメージ図   ●楽観的排他制御で起こり得る問題  (1-2) 悲観的排他制御 …

no image

Kerasでロジスティクス回帰を実装した例をご紹介

  <目次> (1) Kerasでロジスティクス回帰を実装した例をご紹介  (1-1) 実装のフローとポイント  (1-2) 実装例 (1) Kerasでロジスティクス回帰を実装した例をご紹 …

Slackのアプリを作成する手順をご紹介

  <目次> (1) Slackのアプリを作成する手順をご紹介  (1-1) Slackアプリの作成手順   ●STEP1:Slackアプリの新規作成   ●STEP2:Slackアプリの権 …

Azure App ServiceにVisual Studioからデプロイを行う方法

  <目次> (1) Azure App ServiceにVisual Studioからデプロイを行う方法  (1-0) STEP0:前提条件  (1-1) STEP1:Visual Stu …

  • English (United States)
  • 日本語
Top