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

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

関連記事

Windows10でアイコンの間隔が広くなる不具合の対処

  <目次> (1) Windows10でアイコンの間隔が広くなる不具合の対処  (1-1) 発生状況・エラーメッセージ等  (1-2) 原因・対処 (1) Windows10でアイコンの間 …

MiroのTeam/Projectの違いや使い分けなど

  <目次> (1) MiroのTeam/Projectの違いや使い分けなど  (1-1) MiroのTeam/Projectの違い  (1-2) MiroのTeam/Project単位でB …

no image

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

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

Azure DevOpsのReposをデスクトップアプリで操作する方法についてご紹介

  <目次> (1) Azure DevOpsのReposをデスクトップアプリで操作する方法についてご紹介  (1-1) 「GitHub Desktop」の導入手順  (1-2) 「GitH …

公開鍵基盤(PKI)の仕組みと証明書の役割について

  <目次> (1) 公開鍵基盤(PKI)の仕組みと証明書の役割について  記事の「目的」と「前提」  (1-0) STEP0:全体像  (1-1) STEP1:証明書の正当性チェック  ( …

  • English (United States)
  • 日本語
Top