feat: FCM 관리자 페이지 추가
- FCM 토큰 관리 페이지 (목록, 활성화/비활성화, 삭제) - 테스트 발송 페이지 (대상 필터, 미리보기, 발송) - 발송 이력 페이지 (필터링, 결과 확인) - FcmSender 서비스 (HTTP v1, 배치 처리) - fcm_send_logs 테이블 마이그레이션 - google/auth 패키지 추가
This commit is contained in:
78
config/fcm.php
Normal file
78
config/fcm.php
Normal file
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| FCM Project ID
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Firebase 프로젝트 ID (Firebase Console에서 확인)
|
||||
|
|
||||
*/
|
||||
'project_id' => env('FCM_PROJECT_ID'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Service Account JSON Path
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| Firebase Admin SDK 서비스 계정 JSON 파일 경로
|
||||
| storage_path() 기준 상대 경로 또는 절대 경로
|
||||
|
|
||||
*/
|
||||
'service_account_path' => env('FCM_SA_PATH', 'app/firebase-service-account.json'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| FCM HTTP v1 Endpoint
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'endpoint' => 'https://fcm.googleapis.com/v1/projects/{project_id}/messages:send',
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Android Notification Channels
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| 앱에서 정의된 알림 채널 ID 매핑
|
||||
|
|
||||
*/
|
||||
'channels' => [
|
||||
'default' => 'push_default',
|
||||
'urgent' => 'push_urgent',
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Default Settings
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'defaults' => [
|
||||
'channel_id' => 'push_default',
|
||||
'priority' => 'high',
|
||||
'ttl' => '86400s', // 24시간
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Batch Settings
|
||||
|--------------------------------------------------------------------------
|
||||
|
|
||||
| 대량 발송 시 rate limit 관리 설정
|
||||
|
|
||||
*/
|
||||
'batch' => [
|
||||
'chunk_size' => env('FCM_BATCH_CHUNK_SIZE', 200), // 한 번에 처리할 토큰 수
|
||||
'delay_ms' => env('FCM_BATCH_DELAY_MS', 100), // chunk 간 딜레이 (ms)
|
||||
],
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
| Logging
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
'logging' => [
|
||||
'enabled' => env('FCM_LOGGING_ENABLED', true),
|
||||
'channel' => env('FCM_LOG_CHANNEL', 'stack'),
|
||||
],
|
||||
];
|
||||
Reference in New Issue
Block a user