Rainbow Engine

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

Python Slack

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審査用広告コード


-Python, Slack
-

執筆者:


comment

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

関連記事

勾配消失問題とは?原因や対策についてもご紹介

  <目次> 勾配消失問題の対策(解決策)をご紹介(Kerasプログラムあり)  (1-1) 勾配消失問題とは?  (1-2) 勾配消失問題の対策方針  (1-3) 活性化関数による対策(t …

Pythonで複数の画像を結合する方法をご紹介

<目次> (1) Pythonで複数の画像を結合する方法  (1-1) STEP1:Pillowのインストール  (1-2) STEP2:画像の読み込み  (1-3) STEP3:画像を結合  (1- …

matmulとdotの違いについて(Pythonのnumpy・tensorflow)

  <目次> matmulとdotの違いについて(Pythonのnumpy・tensorflow)  (1-1) 両者の違い  (1-2) 両者の違い(実機確認) matmulとdotの違い …

PythonでSQLAlchemyを使ってOracleDBに接続する方法

(0)目次&概説 (1) 記事の目的  (1-1) 目的  (1-2) 前提条件 (2) 事前準備  (2-1) 準備1(cx_oracleパッケージの導入)   (2-1-1) インストール資源の入 …

Azure DevOpsからAzure App Serviceへ自動デプロイする最短CI/CD構築ガイド

<目次> Azure DevOpsからAzure App Serviceへ自動デプロイする最短CI/CD構築ガイド  この記事のねらい  STEP1:前提準備  STEP2:サービス接続の作成  ST …

  • English (United States)
  • 日本語
Top