デコレーターでチャットワークに送信するものを作りたい
理解しました。以下は、デコレータを使用して関数が呼び出されたときにチャットワークにメッセージを送信する方法の例です。
まず、チャットワークにメッセージを送信するためのヘルパー関数を作成します。
python
import requests def send_to_chatwork(api_token, room_id, message): """ チャットワークにメッセージを送信する関数 """ url = f"https://api.chatwork.com/v2/rooms/{room_id}/messages" headers = { "X-ChatWorkToken": api_token, "Content-Type": "application/x-www-form-urlencoded" } payload = { "body": message } response = requests.post(url, headers=headers, data=payload) if response.status_code == 200: print("Message sent successfully to Chatwork") else: print("Failed to send message to Chatwork")
次に、この関数を使用してデコレータを定義します。
python
def send_to_chatwork_decorator(api_token, room_id): """ チャットワークにメッセージを送信するデコレータ """ def decorator(func): def wrapper(*args, **kwargs): result = func(*args, **kwargs) # メッセージの作成 message = f"Function '{func.__name__}' was called." send_to_chatwork(api_token, room_id, message) return result return wrapper return decorator
これで、send_to_chatwork_decorator を使ってデコレータを作成できます。このデコレータを関数に適用すると、その関数が呼び出されたときにチャットワークにメッセージが送信されます。
例えば、以下のように使用します。
python
CHATWORK_API_TOKEN = "your_chatwork_api_token" CHATWORK_ROOM_ID = "your_chatwork_room_id" @send_to_chatwork_decorator(CHATWORK_API_TOKEN, CHATWORK_ROOM_ID) def my_function(): print("This is my function") my_function()
これで my_function が呼び出されるたびに、関数が呼び出されたことがチャットワークに通知されます。

ディスカッション
コメント一覧
まだ、コメントがありません