초기 커밋: 5130 레거시 시스템
- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
This commit is contained in:
84
ai_sam/api/get_api_key.php
Normal file
84
ai_sam/api/get_api_key.php
Normal file
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
/**
|
||||
* Gemini API Key 조회 API
|
||||
* Codebridge-Chatbot 프로젝트의 서비스 계정을 사용합니다.
|
||||
*/
|
||||
header('Content-Type: application/json; charset=utf-8');
|
||||
|
||||
// 서비스 계정 JSON 파일 경로
|
||||
$serviceAccountFile = dirname(dirname(__DIR__)) . '/apikey/google_service_account.json';
|
||||
// API 키 파일 경로
|
||||
$apiKeyFile = dirname(dirname(__DIR__)) . '/apikey/gemini_api_key.txt';
|
||||
|
||||
try {
|
||||
// Codebridge-Chatbot 프로젝트 확인
|
||||
$serviceAccount = null;
|
||||
if (file_exists($serviceAccountFile)) {
|
||||
$serviceAccount = json_decode(file_get_contents($serviceAccountFile), true);
|
||||
|
||||
if ($serviceAccount && isset($serviceAccount['project_id'])) {
|
||||
// project_id가 'codebridge-chatbot'인지 확인
|
||||
if ($serviceAccount['project_id'] !== 'codebridge-chatbot') {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => '서비스 계정 프로젝트가 "codebridge-chatbot"이 아닙니다. 현재 프로젝트: ' . $serviceAccount['project_id'] . '. Codebridge-Chatbot 프로젝트의 서비스 계정을 사용해주세요.'
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// API 키 파일 확인 (Codebridge-Chatbot 프로젝트의 API 키)
|
||||
if (file_exists($apiKeyFile)) {
|
||||
$apiKey = trim(file_get_contents($apiKeyFile));
|
||||
|
||||
// 플레이스홀더 텍스트 체크
|
||||
if (empty($apiKey) ||
|
||||
strpos($apiKey, '================================') !== false ||
|
||||
strpos($apiKey, 'GEMINI API KEY') !== false ||
|
||||
strpos($apiKey, '여기에') !== false ||
|
||||
strlen($apiKey) < 20) {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => 'Codebridge-Chatbot 프로젝트의 API Key가 설정되지 않았습니다. apikey/gemini_api_key.txt 파일에 유효한 API Key를 입력해주세요.'
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
return;
|
||||
}
|
||||
|
||||
// 서비스 계정 정보도 함께 반환
|
||||
$response = [
|
||||
'success' => true,
|
||||
'apiKey' => $apiKey
|
||||
];
|
||||
|
||||
if ($serviceAccount && $serviceAccount['project_id'] === 'codebridge-chatbot') {
|
||||
$response['projectId'] = $serviceAccount['project_id'];
|
||||
$response['serviceAccount'] = true;
|
||||
$response['clientEmail'] = $serviceAccount['client_email'] ?? '';
|
||||
}
|
||||
|
||||
echo json_encode($response, JSON_UNESCAPED_UNICODE);
|
||||
return;
|
||||
}
|
||||
|
||||
// API 키 파일이 없으면 오류
|
||||
if ($serviceAccount && $serviceAccount['project_id'] === 'codebridge-chatbot') {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => 'Codebridge-Chatbot 프로젝트의 API 키 파일(gemini_api_key.txt)을 찾을 수 없습니다. Google Cloud Console에서 API 키를 생성하고 apikey/gemini_api_key.txt 파일에 입력해주세요.'
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
} else {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => 'Codebridge-Chatbot 프로젝트의 서비스 계정 파일(google_service_account.json) 또는 API 키 파일(gemini_api_key.txt)을 찾을 수 없습니다.'
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
echo json_encode([
|
||||
'success' => false,
|
||||
'error' => '인증 정보를 읽는 중 오류가 발생했습니다: ' . $e->getMessage()
|
||||
], JSON_UNESCAPED_UNICODE);
|
||||
}
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user