2020/06/29
Pythonを使ってChatworkにメッセージ付きでファイルをアップロードする
概要
定期的に実行した結果をファイルにまとめて、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"がアップロードできました。
以上になります。
関連する記事
[Python]ハイフンなし電話番号からハイフン付きに復元
Pythonでハイフンなしの日本の電話番号をハイフン付きのものに変換する
[Python]BeautifulSoup4でhtmlの解析
BeautifulSoup4というPythonのライブラリを使って、特定のURLのコンテンツを取得し、タイトルや説明文を取得できるようにしました。
[Python]銀行コードと支店コードの取扱
Pythonで銀行コード、支店コードデータを取り扱う便利なライブラリzengin-codeを導入しました。
Sendgridを使ってメールの受信を行う
Inbound Email Parse Webhookという機能を利用してメールを受信したらWebhookを呼び出すようにしました