Rainbow Engine

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

IT技術 (Technology)

SlackのAPIでメッセージを投稿する方法(Pythonのサンプルコード付き)

投稿日:2022年6月24日 更新日:

 

<目次>

(1) SlackのAPIでメッセージを投稿する方法(Pythonのサンプルコード付き)
 (1-1) STEP1:Slackでボット用のアプリを作成
 (1-2) STEP2:Python環境の準備#1【任意】
 (1-3) STEP3:Python環境の準備#2
 (1-4) STEP4:Pythonプログラムの作成#1:環境変数
 (1-5) STEP5:Pythonプログラムの作成#2:ロジック
 (1-6) STEP6:疎通テスト

(1) SlackのAPIでメッセージを投稿する方法(Pythonのサンプルコード付き)

本記事ではまずSlackアプリを作成し、PythonプログラムからAPI呼び出しし、ボットにメッセージ投稿をさせる所までをご紹介します。
(※これだけでは、単にBotとして手動で投稿する事しか出来ないので、Botらしい「何かのイベントをトリガーにメッセージを投稿する」といった自動処理は別途(★)ご紹介します)
(図100)イメージ

(前提)

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

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

・①Slackでメッセージを投稿するためのボット用のアプリを作ります。
下記の別記事を参照。
 
 
※当記事は上記の記事にて、curlコマンドでAPI呼び出している部分を、Pythonに置き換えて実現する方法を紹介しています。
 
(図101)上記手順を実施した後、こんな感じで「chat:write」権限を持ったアプリができます。

(図102)作ったアプリはSlackチャンネル内にも統合されています。

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

※この手順は任意です。
筆者はvenv(仮想環境)を作りその配下で作業しますが、この手順は必須ではありません。詳しく知りたい人はこちらの記事(→★)を見て頂けたらと思います。
 
・①venvの作成
(図111①)

↓作成された
(図111②)

・②venvの有効化

(図111③)
 

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

・①下記pip(パッケージ管理システム)コマンドで必要となるパッケージ「python-dotenv」と「slackclient」を導入します。
pip install python-dotenv
pip install slackclient
(図121①)

(図121②)

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

・①「.env」作成
(図131①)
・②環境変数の設定
 
SLACK_TOKEN=[ご自身のBot User OAuth Token]
 
ここの値を・・・
(図131②)
↓ここに貼り付け
(図131③)

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

(サンプルコード)

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='[投稿したいチャンネル名]', text="[投稿したいメッセージ]")

(図141①)

目次にもどる

STEP6:疎通テスト

試しに実行して結果を確認します。
(図151①)

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)

執筆者:


comment

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

関連記事

システム開発における設計品質の分析の進め方(一例)について

  <目次> (1) システム開発における設計品質の分析の進め方(一例)について  (1-1) まえがき  (1-2) 前提事項  (1-3) 進め方  (1-4) 参考:分析の手法について …

Miroのプラン比較の調査をしてみた

  <目次> (1) Miroのプラン比較の調査をしてみた  (1-1) 目的  (1-2) 調査結果   (1-2-1) 各プランの概要   (1-2-2) 機能比較の補足 (1) Mir …

CelonisのProcess ExplorerとVariant Explorerの違い

  <目次> (1) CelonisのProcess ExplorerとVariant Explorerの違い  (1-1) Process Explorer(プロセスエクスプローラー)の概 …

SlackのRequest URLで「Your URL didn’t respond with the value of the challenge parameter.」エラーが出た時の対処方法

  <目次> (1) SlackのRequest URLで「Your URL didn’t respond with the value of the challenge par …

CelonisのコネクタでOracle DBと接続を試した際の設定手順について

  <目次> (1) CelonisのコネクタでOracle DBと接続を試した際の設定手順について  (1-0) 概要  (1-1) STEP1:Data Poolの設定  (1-2) S …

  • English (United States)
  • 日本語
Top