- FcmSender.sendToMany() 추가 (chunk/rate limit 지원) - FcmBatchResult 클래스 추가 (발송 결과 집계) - fcm:send 명령어 추가 (대량 발송, dry-run 지원) - fcm:prune-invalid 명령어 추가 (무효 토큰 정리) - PushDeviceToken에 last_error, last_error_at 컬럼 추가 - 실패 토큰 자동 비활성화 (UNREGISTERED, NOT_FOUND, INVALID_ARGUMENT)
79 lines
2.5 KiB
PHP
79 lines
2.5 KiB
PHP
<?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'),
|
|
],
|
|
];
|