2020/06/29

Pythonを使ってChatworkにメッセージ付きでファイルをアップロードする

python

概要

定期的に実行した結果をファイルにまとめて、chatworkにメッセージとしてアップしたい要件が出てきたので対応しました。

pythonで一時ファイルを作成し、chatworkにアップロードします。

実施事項

事前準備

  • Chatworkにログインし、 サービス連携 > API Token から、API Tokenを発行し、メモしておきます。
  • メッセージを投げたい、roomのidをメモしておきます。
    • https://www.chatwork.com/#!ridXXXXXXXXX URLのrid以降の番号です。

install

% poetry add requests

実装

CHATWORK_ROOM_ID = "XXXXXXXXX"
CHATWORK_API_TOKEN = "APIトークンの値"

file_name = "mytext.txt"
file_path = "/path/to/mytext.txt"

file_data = open(file_path, 'rb').read()
files = {
    "file": (file_name, file_data, "text/plain"),
}
data = {
    "message": "ここにメッセージを入れます。"
}
post_message_url = f"https://api.chatwork.com/v2/rooms/{CHATWORK_ROOM_ID}/files"
headers = {'X-ChatWorkToken': CHATWORK_API_TOKEN}
response = requests.post(
    post_message_url,
    headers=headers,
    files=files,
    data=data,
)
logger.info(f"{response.text}")

これで、“ここにメッセージを入れます。” というコメント付きで、"mytext.txt"がアップロードできました。

以上になります。