---
title: KurocoFront以外のホスティングサービスにWebhookを送信できますか？
description: 可能です。`{api}`のSmartyプラグインを使用して、外部サービスにリクエストを送信してください
category: howto
---

import StructuredDataFaqs from '@site/src/components/StructuredDataFaqs';

<StructuredDataFaqs faqs={[
    { question: "KurocoFront以外のホスティングサービスにWebhookを送信できますか？", answer: "可能です。`{api}`のSmartyプラグインを使用して、外部サービスにリクエストを送信してください" }
]} />

可能です。  
[`{api}`](/ja/docs/reference/smarty-plugin/#api)のSmartyプラグインを使用して、外部サービスにリクエストを送信してください。
Webhookの送信先URLやリクエスト内容はカスタム処理で記述し、送信のタイミングは希望するトリガーを設定して調整します。

これにより、KurocoFront以外のサービスでホスティングしている場合でも、コンテンツ更新後などの任意のタイミングで自動的にビルドを実行できます。

## コンテンツの更新後のトリガーでWebhookを送る方法

### リクエストの内容を調整する
例えば、VercelにDeploy Hookを送る場合はカスタム処理に以下のコードを書きます。  
endpointのURLは[Vercelのドキュメント](https://vercel.com/docs/deploy-hooks)を参考にVercel側で発行してください。

```smarty
{api
    endpoint='https://api.vercel.com/v1/integrations/deploy/prj_******************'
    method="POST"
    var=response
    status_var=status
}

{logger msg1="vercel deploy" msg2=$response}
```

### Webhookの送信タイミングを設定する
追加したカスタム処理に[コンテンツの更新後]のトリガーを設定します。  
名称横のボックスに`1`を入力するとコンテンツ定義ID=1のコンテンツがトリガーの対象になります。

![Image from Gyazo](https://t.gyazo.com/teams/diverta/a0ab88b9bfa01546bae7168354c889f2.png)

これにより対象のコンテンツが更新されるとVercelにDeploy Hookが送信され、自動でビルドが開始します。

:::tip
利用できるトリガーの一覧は以下を参照してください。
- [カスタム処理に利用できるトリガと変数の一覧](/ja/docs/reference/trigger-variables/)
:::

## Githubのデプロイリクエスト時のトリガーでWebhookを送る方法

「[Githubのデプロイリクエスト時](/ja/docs/reference/trigger-variables/#githubのデプロイリクエスト時)」のトリガーは、KurocoからGitHub ActionsへのWebhook時に動作します。  
こちらのトリガーを利用して、デフォルトのGitHub Actionsへのリクエストを任意のホスティングサービスに書き換える事で、KurocoFront以外のホスティングサービスを利用している場合でも、
コンテンツ編集画面のGithub Actionsワークフローの設定でデプロイの有無を制御できるようになります。

例えば、以下のようにカスタム処理を設定すると、デフォルトのGitHub Actionsへのリクエストをキャンセルし、Vercelへのデプロイフック送信ができます。  
endpointのURLは[Vercelのドキュメント](https://vercel.com/docs/deploy-hooks)を参考にVercel側で発行してください。

```smarty
{api
    endpoint='https://api.vercel.com/v1/integrations/deploy/prj_******************'
    method="POST"
    var=response
    status_var=status
}

{logger msg1="vercel deploy" msg2=$response}
{assign var='cancel_github_deploy_request' value=true}
```

## 代表的なホスティングサービス

他のホスティングサービスを利用する場合も、同様にWebhookを送信する任意の処理を設定してください。

| ホスティングサービス       | 機能名称             | 公式ドキュメントリンク |
|----------------------------|----------------------|-------------------------|
| **Vercel**                 | Deploy Hook          | [公式ドキュメント](https://vercel.com/docs/deploy-hooks) |
| **Netlify**                | Build Hook           | [公式ドキュメント](https://docs.netlify.com/configure-builds/build-hooks/) |
| **Cloudflare Pages**       | Deploy Hook          | [公式ドキュメント](https://developers.cloudflare.com/pages/configuration/deploy-hooks/) |
| **GitHub Pages**           | Webhook              | [公式ドキュメント](https://docs.github.com/ja/webhooks/using-webhooks/creating-webhooks) |
| **Firebase Hosting**       | REST API             | [公式ドキュメント](https://firebase.google.com/docs/hosting/api-deploy) |
| **AWS Amplify**            | Incoming Webhook     | [公式ドキュメント](https://docs.aws.amazon.com/ja_jp/amplify/latest/userguide/create-incoming-webhook.html) |

:::tip
ホスティングサービスへのデプロイを目的としたWebhookだけでなく、Slack、Chatwork、Discordなど任意のサービスへの通知にも利用できます。
:::

## 関連ドキュメント
- [カスタム処理に利用できるトリガと変数の一覧](/ja/docs/reference/trigger-variables/)
- [Smartyプラグイン](/ja/docs/reference/smarty-plugin/)
- [お問い合わせの受信通知をChatworkで送信する](/ja/docs/tutorials/send-chatwork-notification-after-a-form-has-been-submitted/)
