Chatwork通知が飛ばなかった原因と修正方法
Chatwork通知が飛ばなかった原因と修正方法
問題
Googleカレンダーにイベントを追加したとき、Chatwork通知が飛ばない。
コードを見ると、ちゃんと send_chatwork_notification() を呼び出しているのに…
原因
notifications.py で環境変数(.env)が読み込まれていなかった。
# notifications.py(修正前)
import os
import requests
def send_chatwork(message: str):
api_token = os.getenv('CHATWORK_API_TOKEN') # ← Noneになる
room_id = os.getenv('CHATWORK_ROOM_ID')
# ...
os.getenv() は呼び出せるけど、.env ファイルが読み込まれていないと空文字が返る。
解決策
dotenv で .env を読み込む:
# notifications.py(修正後)
from dotenv import load_dotenv
import os
import requests
load_dotenv() # ← これを追加
def send_chatwork(message: str):
api_token = os.getenv('CHATWORK_API_TOKEN') # ← 正しく取得
room_id = os.getenv('CHATWORK_ROOM_ID')
# ...
学んだこと
os.getenv()は環境変数を取得するだけ.envファイルは自動で読み込まれないload_dotenv()を明示的に呼ぶ必要がある
Pythonあるあるですね。
修正時間: 5分
影響範囲: 通知機能全般