Reactive HandlerΒΆ
This is how to implement handlers for the KakaoWork user reactions.
Reactive action handlers are implemented below. Reactive modal handlers are also implemented similarly.
# handler.py
from kakaowork.reactive import BaseReactiveActionHandler
from kakaowork.models import SubmitActionReactiveBody
from kakaowork.client import Kakaowork
class MyReactiveActionHandler(BaseReactiveActionHandler):
def __init__(self, client: Kakaowork) -> None:
self.client = client
def handle_submit(self, body: SubmitActionReactiveBody) -> bool:
if body.action_name == 'confirm':
self.client.messages.send(
conversation_id=body.message.conversation_id,
text='Thanks for your response',
)
return True
elif body.action_name == "cancel":
self.client.messages.send(
conversation_id=body.message.conversation_id,
text='See you later',
)
return False
# server.py
from flask import Flask, request, abort
from kakaowork.client import Kakaowork
from kakaowork.models import SubmitActionReactiveBody
from myhandler import MyReactiveActionHandler
app = Flask(__name__)
client = Kakaowork(app_key='my_app_key')
handler = MyReactiveActionHandler(client)
@app.route("/callback")
def callback():
body = SubmitActionReactiveBody.from_json(request.data)
ok = handler.handle_submit(body)
if not ok:
abort(400)
return 'OK'