統合ガイド
サードパーティ開発者がAPIとWebhookを統合するための完全なガイド。
APIキー
はじめに
- 設定 > APIキーからAPIキーを作成
- APIキーをすぐにコピー(一度だけ表示されます)
- 統合に必要な権限を選択
- 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の設定
- 面談ボットに移動し、Webhookを設定したいボットを選択
- 「公開設定」タブに切り替え、「Webhookを追加」をクリック
- Webhook URLエンドポイントを入力(HTTPSである必要があります)
- Webhookを保存して有効化
セキュリティ
セキュリティのベストプラクティス
- Webhook URLには常にHTTPSを使用
- 署名検証を使用してWebhookリクエストを確認(実装されている場合)
- Webhook URLを非公開で安全に保つ
ベストプラクティス
セキュリティ
- APIキーをバージョン管理にコミットしない
- 環境変数または安全なストレージを使用
- 定期的にAPIキーをローテーション
レート制限
- 短時間に多くのAPI呼び出しを行わない
- 可能な場合はキャッシュを実装
- 大きなデータセットにはページネーションを使用
エラーハンドリング
- 常にHTTPステータスコードを確認
- 401、404、500エラーを適切に処理
- デバッグのためにエラーをログに記録