logo
Development
検索
Webhook 検出サービス

Webhook 検出サービス

開発者が GPTBots webhook サービスの可用性を検出すること、および対象 Agent に設定された webhook URL の可用性を検出することをサポートします。

Agent に設定された webhook サービスの可用性を検出する

GPTBots は、開発者が API を通じて対象 Agent に設定されたすべての Webhook URL の可用性を検出することをサポートします。これには「メッセージ送信」および「有人対応サービス-webhook」に設定された webhook url の可用性が含まれます。開発者が本インターフェースを呼び出すと、GPTBots は現在の API Key が属する Agent にすでに設定されているすべての Webhook URL を自動的に検出し、検出対象を別途指定する必要はありません。そして各 Webhook の検出結果をレスポンスで項目ごとに返します。
istest フィールドが関係する開発者のすべての Webhook サービスは以下のとおりです。

  • メッセージ送信 API が webhook にメッセージを応答する際のリクエストボディにこのフィールドが含まれます。詳細を見る
  • 有人対応サービスの会話リクエスト通知およびユーザーメッセージを受信する際のリクエストボディにこのフィールドが含まれます。詳細を見る

開発者の Webhook サービスは、リクエストを受信した際にメッセージボディ内の istest フィールドを識別する必要があります。istest=true の場合は可用性テストリクエストであり、実際の業務メッセージとして処理すべきではありません(データベースに保存しない、有人対応サービスをトリガーしないなど)。そして HTTP ステータスコード 200 を返せば、その Webhook が利用可能であることを示します。

リクエストメソッド

POST

リクエストURL

https://api-${endpoint}.gptbots.ai/v1/webhook/check

リクエスト認証

詳細については API Overview の認証方法の説明をご参照ください。本インターフェースは API Key によって対象 Agent を識別し、その Agent に設定された Webhook を検出します。

リクエスト

リクエスト例

curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \ -H 'Authorization: Bearer ${API Key}' \ -H 'Content-Type: application/json'
                      
                      curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/webhook/check' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json'

                    
このコードブロックをポップアップで表示

リクエストヘッダー

フィールド タイプ 説明
Authorization Bearer ${API Key} Authorization: Bearer ${API Key} を使用して呼び出し認証を行います。API キーページでキーを取得し、API Key として使用してください。
Content-Type application/json データ形式。値は application/json です。

リクエストパラメータ

本インターフェースはリクエストパラメータを渡す必要はありません。GPTBots は現在の API Key が属する Agent にすでに設定されているすべての Webhook URL を自動的に検出します。

レスポンス

レスポンス例

{ "results": [ { "type": "message", "component_id": null, "component_name": null, "webhook_url": "https://your_domain/webhook/message", "reachable": true, "http_status": 200, "latency_ms": 156 }, { "type": "human_service", "component_id": "665d88b03ce2b13cf2d57346", "component_name": "人工服务-售前", "webhook_url": "https://your_domain/presale/human/service/conversation/establish", "reachable": true, "http_status": 200, "latency_ms": 188 }, { "type": "human_service", "component_id": "665d88b03ce2b13cf2d57347", "component_name": "人工服务-售后", "webhook_url": "https://your_domain/aftersale/human/service/conversation/establish", "reachable": false, "http_status": 502, "latency_ms": 3000 } ] }
                      
                      {
  "results": [
    {
      "type": "message",
      "component_id": null,
      "component_name": null,
      "webhook_url": "https://your_domain/webhook/message",
      "reachable": true,
      "http_status": 200,
      "latency_ms": 156
    },
    {
      "type": "human_service",
      "component_id": "665d88b03ce2b13cf2d57346",
      "component_name": "人工服务-售前",
      "webhook_url": "https://your_domain/presale/human/service/conversation/establish",
      "reachable": true,
      "http_status": 200,
      "latency_ms": 188
    },
    {
      "type": "human_service",
      "component_id": "665d88b03ce2b13cf2d57347",
      "component_name": "人工服务-售后",
      "webhook_url": "https://your_domain/aftersale/human/service/conversation/establish",
      "reachable": false,
      "http_status": 502,
      "latency_ms": 3000
    }
  ]
}

                    
このコードブロックをポップアップで表示

成功時のレスポンス

フィールド タイプ 説明
results JSON Array 検出結果のリスト。その Agent に設定された各 Webhook の検出結果を項目ごとに返します。設定されていない Webhook はリストに表示されません。1つの Agent に複数の有人対応サービス(handoff)コンポーネントが設定されている場合、各コンポーネントがそれぞれ1件の human_service 結果に対応します。
type string Webhook タイプ。message:Agent の応答メッセージを受信する Webhook。human_service:有人対応サービスコンポーネントの webhook モードで設定された Webhook。
component_id string 有人対応サービス(handoff)コンポーネントの一意の識別 ID。複数の有人対応サービスコンポーネントが設定されている場合の区別に使用します。message タイプの場合は null です。
component_name string 有人対応サービス(handoff)コンポーネントの名称。message タイプの場合は null です。
webhook_url string 検出対象の Webhook URL。
reachable boolean その Webhook が利用可能かどうか。true は利用可能、false は利用不可を表します。
http_status int 検出リクエストが返した HTTP ステータスコード。接続失敗またはタイムアウトの場合は null または 0 です。
latency_ms long 検出リクエストの所要時間(ミリ秒)。

可用性判定の推奨

GPTBots は標準のメッセージ形式に従って istest=true を含む検出リクエストを Webhook URL に送信し、返された結果によって可用性を判定します。

状況 判定
HTTP ステータスコード 200 を返す その Webhook は利用可能reachable=true
200 以外を返す(4xx/5xx など)/ リクエストタイムアウト / 接続失敗 その Webhook は利用不可reachable=false

失敗時のレスポンス

フィールド タイプ 説明
code int エラーコード。
message string エラーの詳細情報。

エラーコード

Code Message
40000 パラメータエラー
40127 開発者認証に失敗しました
40378 Agent が削除されています
40379

GPTBots Webhook サービス状態検出

GPTBots は webhook サービスを検出するためのヘルスモニタリングインターフェースを提供しており、開発者はこのインターフェースを呼び出して GPTBots webhook サービスが正常に利用可能かどうかを探査できます。インターフェースが HTTP ステータスコード 200 を返し、かつレスポンスボディがサービス正常を示す英語の識別子(service is normal など)であれば、GPTBots webhook サービスが正常に利用可能であることを示します。本インターフェースは認証不要で、平文を返します。

リクエストメソッド

GET

リクエストURL

https://api.gptbots.ai/v1/webhook/service/health

リクエスト例

curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'
                      
                      curl -X GET 'https://api.gptbots.ai/v1/webhook/service/health'

                    
このコードブロックをポップアップで表示

レスポンス

GPTBots サービスが正常に利用可能な場合、HTTP ステータスコード 200 を返し、レスポンスボディにサービス正常を示す英語の識別子を返します。

service is normal
                      
                      service is normal

                    
このコードブロックをポップアップで表示

可用性判定の推奨

呼び出し側は HTTP ステータスコードのみを判定基準とすればよいです。

状況 判定
200 を返し、かつレスポンスボディが service is normal GPTBots サービスは正常に利用可能
200 以外を返す(5xx など)/ リクエストタイムアウト / 接続失敗 GPTBots サービスは利用不可

適切なリクエストタイムアウト(3〜5 秒など)を設定し、一定の頻度でポーリング探査することを推奨します(QPM:3)。本インターフェースは認証不要のため、呼び出し時に API Key を付与する必要はありません。