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

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

関連記事

no image

P2P(Procure to Payment)とは?概要や流れをご紹介

  <目次> (1) P2P(Procure to Payment)とは?概要や流れをご紹介  (1-1) 概要  (1-2) 流れ   ●①必要性チェック(Indentify Needs) …

プロセスとは? Linuxの例も交えてご紹介

  <目次> (1) プロセスとは? Linuxの例も交えてご紹介  (1-1) プロセスとは?  (1-2) プロセスの構成要素  (1-3) プロセスの状態遷移 (1) プロセスとは? …

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

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

Fit & Gapのやり方やテンプレートについて

  <目次> (1) Fit & Gapのやり方やテンプレートについて  (1-1) Fit & Gapとは?  (1-2) 現行機能の整理(機能一覧)  (1-3) 要件の …

Slackのソケットモードとは?概要からHello Worldの手順までご紹介

  <目次> (1) Slackのソケットモードとは?概要からHello Worldの手順までご紹介  (1-1) Slackのソケットモードとは?  (1-2) 設定手順(Hello Wo …

  • English (United States)
  • 日本語
Top