コンテンツにスキップ

Hook v2からCraft Functionsを実行する

Hook v2は、KARTE内で発生したイベントをトリガーとして、指定したチャネルへデータを送信する機能です。

Hook v2全体の仕組みや、Webhook・Amazon EventBridgeを含むチャネルの種類については、Hook v2概要を確認してください。

このページでは、Hook v2のチャネルにKARTE Craftを指定し、イベント駆動タイプのCraft Functionsを実行する方法を説明します。

hook_v2_trigger

Hook v2は、処理を開始する「トリガー」と、データの送信先となる「チャネル」を組み合わせて設定します。

  • トリガー
    • KARTE Talkのメッセージ送信、Datahub Jobflowの開始・終了、KARTE Craft(Craft Functions、Craft Sites、Craft Cross CMS)の操作など
  • チャネル

KARTE Craftをチャネルに指定すると、トリガーの発生に応じて、指定したCraft Functionsが実行されます。

Craft Functionsは、KARTE Talk、Datahub、KARTE Craftなどで発生したイベントをトリガーとして実行できます。

KARTE Talk・Datahubで利用できるトリガーについては、Hook v2概要を確認してください。

KARTE Craftの操作を起点とするトリガーについては、KARTE Craft関連トリガーを確認してください。

KARTE Craft関連トリガー

Craft Functions、Craft Sites及びCraft Cross CMSを管理画面またはAPIで操作した際に、Hook v2のトリガーを発火できます。

トリガー必要なScopetype
ファンクションの作成時beta.craft.function.metadata.findByIdcraft/functions/function/create
ファンクションの更新時beta.craft.function.metadata.findByIdcraft/functions/function/update
ファンクションの削除時beta.craft.function.metadata.findByIdcraft/functions/function/delete
サイトコンテンツのアップロード時beta.craft.sites.content.getcraft/sites/content/upload
サイトコンテンツの公開状態の変更時beta.craft.sites.content.getcraft/sites/content/visibilityUpdated
サイトコンテンツの削除時beta.craft.sites.content.getcraft/sites/content/remove
サイトコンテンツのコピー時beta.craft.sites.content.getcraft/sites/content/copy
サイトコンテンツの移動時beta.craft.sites.content.getcraft/sites/content/move
サイトコンテンツのリネーム時beta.craft.sites.content.getcraft/sites/content/rename
サイトディレクトリの削除時beta.craft.sites.content.getcraft/sites/directory/remove
サイトディレクトリのコピー時beta.craft.sites.content.getcraft/sites/directory/copy
サイトディレクトリの移動時beta.craft.sites.content.getcraft/sites/directory/move
サイトディレクトリの公開状態の変更時beta.craft.sites.content.getcraft/sites/directory/visibilityUpdated
CMSコンテンツの作成時beta.cms.content.getcms/content/create
CMSコンテンツの更新時beta.cms.content.getcms/content/update
CMSコンテンツの公開時beta.cms.content.getcms/content/publish
CMSコンテンツの非公開時beta.cms.content.getcms/content/unpublish
CMSコンテンツの削除時beta.cms.content.getcms/content/delete
CMSコンテンツの並び順変更時beta.cms.content.getcms/content/updateOrder

typeは、どの操作をトリガーとして送信されたデータかを識別するための値です。

Hook v2のチャネル・重複排除・ステータスなどの共通仕様については、Hook v2概要を確認してください。

次の手順でCraft FunctionsのHook v2トリガーを設定します。この設定により、KARTE Talkのメッセージ送信やDatahubジョブフローの開始終了といった各種トリガーからファンクションを実行できます。

  • 事前にイベント駆動タイプのファンクションをデプロイしておきます。
  • アプリを利用する を参考にAPI v2アプリを作成します。
  • 作成したアプリの詳細画面を開きます。
  • 「hook設定」タブで「編集」を選択し、トリガーと実行するFunctionを指定して「保存」を選択します。

hook_trigger_setting

dataのフォーマットは イベント駆動タイプのファンクションが受け取るデータ をご確認ください。

  • kind は `“karte/apiv2-hook” が入ります。
  • jsonPayload のフォーマットはHook v2概要 の各HookのRequest Bodyをご確認ください。

Message Hook でFunctionを実行した場合の data の例です。

{
"id": "3218655a-83e5-4a2d-a298-d5f56e58c365",
"kind": "karte/apiv2-hook",
"jsonPayload": {
"id": "0759a6b7-cd92-458c-ae04-82ac86131b52",
"data": {
"content": {
"text": "test message",
"image": null
},
"sender_id": null,
"account_id": null,
"date": "2023-02-20T07:07:46.237Z",
"user_id": "",
"visitor_id": "vis-xxxxxxxxxxx",
"profile_name": null
},
"extra": {
"access_uri": {
"protocol": "https",
"url": "https://example.com/",
"host": "example.com",
"query": "",
"queryKey": {},
"anchor": "test",
"path": "/"
}
},
"event_type": "talk/message/sendFromUser",
"api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"client_id": "xxxxxxxxxxxx"
},
"timestamp": "2023-02-20T07:07:48.125Z"
}