はじめに
業務でClickUpを使用していますが、タスクのコメントが追加された際にSlackに通知できるようにしたいと思いました。
まずは、Lambdaでイベントを受け取る方法についてまとめました。
準備
Lambda
- 関数を作成する
- 今回は簡易性のためにAPI Gatewayは使わずに関数URLを使う
ClickUp
- 以下に記載の順序でAccessトークンを取得する
Finding your token:
Navigate to your personal Settings
Click Apps in the left sidebar
Click Generate to create your API token
Click Copy to copy the key to your clipboard
- 以下コマンドでWebhookを作成する
curl --include \
--request POST \
--header "Authorization: "access_token"" \
--header "Content-Type: application/json" \
--data-binary "{
\"endpoint\": \"https://yourdomain.com/webhook\",
\"events\": [
\"taskCreated\",
\"taskCommentPosted\",
\"taskCommentUpdated\"
]
}" \
'https://api.clickup.com/api/v2/team/{team_id}/webhook'
- 補足
- access_token: 上記で取得したアクセストークン
- endpoint: イベントを通知したいURL。今回はLambdaの関数URLを指定
- events: 連携したいイベントを列挙する。指定方法は公式ドキュメント参照。今回は以下イベントを取得
- taskCreated: タスクが作成された時のイベント
- taskCommentPosted: タスク内でコメントが投稿された時のイベント
- taskCommentUpdated: タスク内のコメントが更新された時のイベント
- team_id: ワークスペースのID
検証
それぞれのイベントに関して検証した。
レスポンスの内容は以下公式ドキュメントに例が記載あるので、ここでは記載しない。
taskCreated
- 問題なく連携されることを確認できた。
taskCommentPosted
- スレッドでない場合は、問題なく連携されることを確認できた。
- スレッド内でコメントを投稿した場合は連携されなかった。
taskCommentUpdated
- スレッドでない場合は、問題なく更新されることを確認できた。
- スレッド内のコメントを投稿した場合は連携されなかった。
まとめ
- ClickUpのイベントをLambdaで受け取ることができた。
- しかし、スレッド内のコメントが通知されないのがイマイチだと感じた。
- 以下で書いてる人がいますが、今後対応されると嬉しいです。