統合ガイド

サードパーティ開発者がAPIとWebhookを統合するための完全なガイド。

APIキー

はじめに

  1. 設定 > APIキーからAPIキーを作成
  2. APIキーをすぐにコピー(一度だけ表示されます)
  3. 統合に必要な権限を選択
  4. X-Company-Api-Keyヘッダーでコード内でAPIキーを使用

認証

リクエストヘッダーにAPIキーを含める:

X-Company-Api-Key: your_api_key_here

ベースURL

https://evaltalk.biz/api/v1

APIエンドポイント

GET /api/v1/bots

会社の求人(ボット)のリストを取得

必要な権限: bots

GET /api/v1/candidates

応募者(面談)のリストを取得

必要な権限: candidates

GET /api/v1/candidates/{id}/result

応募者の詳細な評価結果を取得

必要な権限: results

コード例

Get Bots

会社の求人(ボット)のリストを取得

GET /api/v1/bots
use GuzzleHttp\Client;

        $client = new Client([
        'base_uri' => 'https://evaltalk.biz/api/v1',
            'headers' => [
                'X-Company-Api-Key' => 'your_api_key_here',
                'Accept' => 'application/json',
            ],
        ]);

        // Get bots
        $response = $client->get('/bots', [
            'query' => [
                'active_only' => true,
                'per_page' => 10
            ]
        ]);
        $bots = json_decode($response->getBody(), true);

Get Candidates

応募者(面談)のリストを取得

GET /api/v1/candidates
use GuzzleHttp\Client;

        $client = new Client([
            'base_uri' => 'https://evaltalk.biz/api/v1',
            'headers' => [
                'X-Company-Api-Key' => 'your_api_key_here',
                'Accept' => 'application/json',
            ],
        ]);

        // Get candidates
        $response = $client->get('/candidates', [
            'query' => [
                'bot_id' => 1,
                'completed_only' => true
            ]
        ]);
        $candidates = json_decode($response->getBody(), true);

Get Candidate Result

応募者の詳細な評価結果を取得

GET /api/v1/candidates/{id}/result
use GuzzleHttp\Client;

        $client = new Client([
            'base_uri' => 'https://evaltalk.biz/api/v1',
            'headers' => [
                'X-Company-Api-Key' => 'your_api_key_here',
                'Accept' => 'application/json',
            ],
        ]);

        // Get candidate result
        $candidateId = 123;
        $response = $client->get("/candidates/{$candidateId}/result");
        $result = json_decode($response->getBody(), true);

Webhookハンドラーの例

Webhookを使用すると、システムでイベントが発生したときにリアルタイム通知を受信できます。特定の求人に対してWebhookを設定し、応募者が面談を完了したときに自動的に更新を受信できます。

// PHP Laravel Example
        Route::post('/webhook/receive', function(Request \$request) {
            \$event = \$request->input('event');
            \$data = \$request->all();

            switch(\$event) {
                case 'interview.completed':
                    // Handle interview completion
                    Log::info('Interview completed', \$data);
                    break;
                case 'bot.expiring':
                    // Handle bot expiration
                    Log::info('Bot expiring', \$data);
                    break;
            }

            return response()->json(['status' => 'ok'], 200);
        });

Webhook

概要

Webhookを使用すると、システムでイベントが発生したときにリアルタイム通知を受信できます。特定の求人に対してWebhookを設定し、応募者が面談を完了したときに自動的に更新を受信できます。

Webhookイベント

面接が完了しました

応募者が面談を完了したときにトリガー

{
    "event": "interview.completed",
    "candidate_name": "Nguyen Van A",
    "bot_title": "Senior Software Engineer",
    "preview_link": "https://...",
    "company_name": "Tech Company",
    "timestamp": "2025-01-15T10:30:00Z"
}

ボットの有効期限が間もなく切れます

求人(ボット)が期限切れになる前にトリガー

{
    "event": "bot.expiring",
    "bot": {
        "id": 1,
        "title": "Senior Software Engineer",
        "deadline": "2025-12-31"
        },
    "link": "https://...",
    "timestamp": "2025-01-15T10:30:00Z"
}

Webhookの設定

  1. 面談ボットに移動し、Webhookを設定したいボットを選択
  2. 「公開設定」タブに切り替え、「Webhookを追加」をクリック
  3. Webhook URLエンドポイントを入力(HTTPSである必要があります)
  4. Webhookを保存して有効化

セキュリティ

セキュリティのベストプラクティス

  • Webhook URLには常にHTTPSを使用
  • 署名検証を使用してWebhookリクエストを確認(実装されている場合)
  • Webhook URLを非公開で安全に保つ

ベストプラクティス

セキュリティ

  • APIキーをバージョン管理にコミットしない
  • 環境変数または安全なストレージを使用
  • 定期的にAPIキーをローテーション

レート制限

  • 短時間に多くのAPI呼び出しを行わない
  • 可能な場合はキャッシュを実装
  • 大きなデータセットにはページネーションを使用

エラーハンドリング

  • 常にHTTPステータスコードを確認
  • 401、404、500エラーを適切に処理
  • デバッグのためにエラーをログに記録