LoginSignup
1
1

More than 1 year has passed since last update.

pythonを使ってslackのメッセージの送受信や画像の送信をする方法

Last updated at Posted at 2022-08-27

はじめに

slackへのメッセージの送受信についての備忘録です。
任意の画像を送信する方法についても記しておきます。
slackのトークン取得については省略します。

pythonからslackにメッセージを送る

import reauests

def send_message_to_slack(CHANNEL, TEXT):
    TOKEN = "xxxxxx" # slackのトークン
    url = "https://slack.com/api/chat.postMessage"
    headers = {"Authorization": "Bearer " + TOKEN}

    data = {"channel": CHANNEL, "text": TEXT}
    r = requests.post(url, headers=headers, data=data)

pythonからslackにメッセージを送るコードです。
変数の説明は下記のとおりです。

  • CHANNEL:送付先のチャンネル名
  • TEXT:送付したい内容

slackのメッセージをpythonで受け取る

import reauests

def get_new_message_from_slack(CHANNEL_URL):
    TOKEN = "xxxxxx" # slackのトークン
    url = "https://slack.com/api/conversations.history"
    payload = {"channel": CHANNEL_URL, "oldest": "1661313953"}
    headersAuth = {
        "Authorization": "Bearer " + str(TOKEN),
    }
    response = requests.get(url, headers=headersAuth, params=payload)
    json_data = response.json()
    msgs = json_data["messages"]
    return msgs

slackのメッセージをpythonに送るコードです。
変数の説明は下記のとおりです。

  • CHANNEL_URL:取得先のチャンネルURL
  • msg:取得した内容
    最新のメッセージがほしい場合はmsg[0]["text"]で取得できます。

筆者はこの関数をwhile文でループさせています。

pythonからslackに画像を送る

import reauests

def upload_images_to_slack(p_img, CHANNEL):
    TOKEN = "xxxxxx" # slackのトークン
    files = {"file": open(p_img, "rb")}
    param = {
        "token": TOKEN,
        "channels": CHANNEL,
        "filename": "filename",
        "initial_comment": "initial comment",
        "title": "title",
    }
    requests.post(url="https://slack.com/api/files.upload", data=param, files=files)

pythonからslackに画像を送るコードです。
変数の説明は下記のとおりです。

  • p_img:送付する画像のパス
  • CHANNEL:送付先のチャンネル名

param内部の文字列は適宜任意のものに変更することができます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1