# 第三方服務整合規格文件 (Third-Party Integration Specification) ## 文件概述 本文件詳細定義了Drama Ling應用程式需要整合的所有第三方服務,包括技術規格、整合優先級、成本分析和風險評估。為開發團隊提供完整的第三方服務整合指引。 **目標讀者**: 開發團隊、架構師、產品經理、專案經理 **維護頻率**: 每月檢視更新 **版本**: v1.0 **最後更新**: 2024年9月6日 --- ## 📊 服務總覽 ### 整合服務統計 *(更新基於規格修正)* - **總服務數量**: 12個主要服務 (移除Stripe、本土支付、SpeechAce) - **核心服務**: 7個 (MVP必需) - **擴展服務**: 5個 (後續優化) - **預估月度成本**: $100-250 USD (大幅降低) ### 服務分類 *(更新版)* ```mermaid graph TD A[第三方服務] --> B[身份認證] A --> C[支付系統] A --> D[AI語言服務] A --> E[基礎設施] A --> F[通訊服務] A --> G[監控分析] B --> B1[Apple ID] B --> B2[Google OAuth] C --> C1[iOS App Store內購] C --> C2[Google Play內購] D --> D1[OpenAI GPT-4o-mini] D --> D2[Microsoft語言評估] D --> D3[Google Speech STT/TTS] E --> E1[AWS] E --> E2[CloudFront CDN] F --> F1[Firebase FCM] F --> F2[AdMob廣告] G --> G1[New Relic] ``` --- ## 🔐 身份認證服務 ### Apple ID 登入 **服務提供商**: Apple **用途**: iOS用戶快速登入註冊 #### 技術規格 - **API**: Sign in with Apple - **支援平台**: iOS, macOS, Web - **整合SDK**: AuthenticationServices (iOS) - **回調處理**: JWT Token驗證 #### 整合點 - **UI介面**: `UI_Login_Main` - **API端點**: `/api/v1/auth/apple-login` - **數據庫**: users.apple_id, users.provider = 'apple' #### 開發需求 ```typescript // iOS SDK 整合 import AuthenticationServices // 後端驗證 POST /api/v1/auth/apple-login { "identity_token": "eyJ...", "authorization_code": "c1a2b3...", "user": { "email": "user@privaterelay.appleid.com", "name": { "firstName": "John", "lastName": "Doe" } } } ``` #### 技術文檔 - [Apple Developer - Sign in with Apple](https://developer.apple.com/sign-in-with-apple/) - [REST API Reference](https://developer.apple.com/documentation/sign_in_with_apple/sign_in_with_apple_rest_api) #### 成本 - **免費**: Apple不收取費用 - **開發時間**: 1-2週 --- ### Google 登入 **服務提供商**: Google **用途**: Android/Web用戶快速登入 #### 技術規格 - **API**: Google OAuth 2.0 - **支援平台**: Android, iOS, Web - **整合SDK**: Google Sign-In SDK - **權限範圍**: email, profile #### 整合點 - **UI介面**: `UI_Login_Main` - **API端點**: `/api/v1/auth/google-login` - **數據庫**: users.google_id, users.provider = 'google' #### 開發需求 ```typescript // Android SDK 整合 implementation 'com.google.android.gms:play-services-auth:20.7.0' // 後端驗證 POST /api/v1/auth/google-login { "id_token": "eyJ...", "access_token": "ya29...", "user_info": { "id": "123456789", "email": "user@gmail.com", "name": "John Doe" } } ``` #### 技術文檔 - [Google Identity Platform](https://developers.google.com/identity) - [OAuth 2.0 Guide](https://developers.google.com/identity/protocols/oauth2) #### 成本 - **免費**: Google不收取費用 - **開發時間**: 1-2週 --- ## 💳 支付與訂閱服務 ### iOS App Store 內購 (主要支付平台) **服務提供商**: Apple App Store **用途**: iOS用戶訂閱和購買服務 #### 技術規格 - **API**: StoreKit 2 (iOS 15+) - **支援幣種**: TWD (台幣) - **支付方式**: Apple ID綁定的付款方式 - **功能模組**: - 自動續訂訂閱 - 消耗型/非消耗型內購 - 家庭共享支援 #### 整合點 - **訂閱系統**: 月費NT$600 自動續訂訂閱 - **道具購買**: 鑽石、命條、回覆提示等消耗型商品 - **內容包購買**: 場景包、詞彙包等非消耗型商品 #### API整合 (iOS) ```swift // StoreKit 2 整合 import StoreKit // 產品ID設定 enum ProductID: String, CaseIterable { case monthlySubscription = "dramaling.subscription.monthly" case diamonds100 = "dramaling.diamonds.100" case lifePoints5 = "dramaling.lifepoints.5" case replyHints10 = "dramaling.replyhints.10" } // 購買處理 @MainActor class StoreManager: ObservableObject { private(set) var products: [Product] = [] func purchase(_ product: Product) async throws -> Transaction? { let result = try await product.purchase() switch result { case .success(let verificationResult): // 驗證交易並同步到後端 if case .verified(let transaction) = verificationResult { await syncTransactionToBackend(transaction) await transaction.finish() return transaction } case .userCancelled, .pending: return nil @unknown default: return nil } return nil } } // 後端驗證 POST /api/v1/purchases/ios/verify { "transaction_id": "2000000123456789", "product_id": "dramaling.subscription.monthly", "receipt_data": "base64_encoded_receipt", "user_id": "user_123" } ``` #### Server-to-Server 通知 ```javascript // Apple Server Notifications V2 POST /webhooks/app-store { "signedPayload": "eyJ..." // JWT from Apple } // 通知類型處理 - SUBSCRIBED: 新訂閱 - DID_RENEW: 續訂成功 - EXPIRED: 訂閱過期 - DID_FAIL_TO_RENEW: 續訂失敗 - REFUND: 退款處理 ``` #### 數據庫結構 ```sql -- 訂閱記錄 (更新為雙平台內購) CREATE TABLE user_subscriptions ( subscription_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID REFERENCES users(user_id) ON DELETE CASCADE, platform VARCHAR(20) NOT NULL, -- 'ios', 'android' product_id VARCHAR(100) NOT NULL, -- App Store/Play Store產品ID original_transaction_id VARCHAR(255), -- iOS原始交易ID latest_receipt TEXT, -- 最新收據 purchase_token VARCHAR(255), -- Android購買Token subscription_state VARCHAR(50) DEFAULT 'active', expires_at TIMESTAMPTZ, auto_renewal BOOLEAN DEFAULT true, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); -- 交易記錄 CREATE TABLE purchase_transactions ( transaction_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), user_id UUID REFERENCES users(user_id) ON DELETE CASCADE, platform VARCHAR(20) NOT NULL, store_transaction_id VARCHAR(255) NOT NULL, product_id VARCHAR(100) NOT NULL, purchase_type VARCHAR(50) NOT NULL, -- 'subscription', 'consumable', 'non_consumable' amount_twd INTEGER, -- 台幣金額 purchase_date TIMESTAMPTZ NOT NULL, verification_status VARCHAR(20) DEFAULT 'pending', -- 'verified', 'failed', 'pending' created_at TIMESTAMPTZ DEFAULT NOW() ); ``` #### 技術文檔 - [StoreKit 2 Documentation](https://developer.apple.com/documentation/storekit) - [App Store Server API](https://developer.apple.com/documentation/appstoreserverapi) - [Google Play Billing](https://developer.android.com/google/play/billing) #### 成本分析 - **Apple手續費**: 30% (首年), 15% (訂閱第二年後) - **Google手續費**: 30% (首年), 15% (訂閱第二年後) - **月訂閱(NT$600)**: Apple/Google分潤 NT$180(首年) / NT$90(次年) - **無額外第三方費用** #### 開發時間 - **iOS StoreKit 2整合**: 2-3週 - **Android Play Billing整合**: 2-3週 - **後端收據驗證**: 1週 - **測試與上線**: 1週 --- ### Google Play 內購 (Android支付平台) **服務提供商**: Google Play Store **用途**: Android用戶訂閱和購買服務 #### 技術規格 - **API**: Google Play Billing Library 5.0+ - **支援幣種**: TWD (台幣) - **支付方式**: Google Play綁定的付款方式 - **功能模組**: - 自動續訂訂閱 - 單次購買商品 - 獎勵商品 #### API整合 (Android) ```kotlin // Google Play Billing 整合 import com.android.billingclient.api.* class BillingManager(private val context: Context) : PurchasesUpdatedListener { private lateinit var billingClient: BillingClient init { billingClient = BillingClient.newBuilder(context) .setListener(this) .enablePendingPurchases() .build() } // 產品ID設定 companion object { const val MONTHLY_SUBSCRIPTION = "dramaling_subscription_monthly" const val DIAMONDS_100 = "dramaling_diamonds_100" const val LIFE_POINTS_5 = "dramaling_lifepoints_5" const val REPLY_HINTS_10 = "dramaling_replyhints_10" } // 購買處理 override fun onPurchasesUpdated(result: BillingResult, purchases: MutableList?) { if (result.responseCode == BillingClient.BillingResponseCode.OK && purchases != null) { for (purchase in purchases) { // 驗證並確認購買 verifyAndAcknowledgePurchase(purchase) } } } } // 後端驗證 POST /api/v1/purchases/android/verify { "purchase_token": "abcdef123456", "product_id": "dramaling_subscription_monthly", "order_id": "GPA.1234-5678-9012-34567", "user_id": "user_123" } ``` #### Real-time Developer Notifications ```javascript // Google Play Server Notifications POST /webhooks/google-play { "message": { "data": "base64_encoded_notification", "messageId": "123456789" } } // 通知類型處理 - SUBSCRIPTION_PURCHASED: 新訂閱 - SUBSCRIPTION_RENEWED: 續訂成功 - SUBSCRIPTION_CANCELED: 取消訂閱 - SUBSCRIPTION_EXPIRED: 訂閱過期 - SUBSCRIPTION_REFUNDED: 退款處理 ``` --- ## 🤖 AI 與語言處理服務 ### OpenAI GPT-4o-mini (核心AI服務) **服務提供商**: OpenAI **用途**: 對話練習、翻譯輔助 #### 技術規格 - **主要模型**: gpt-4o-mini (128K context) - **嵌入模型**: text-embedding-ada-002 - **API版本**: v1 - **支援語言**: 繁體中文、英文 - **成本優化**: 相比GPT-4便宜約60-80% #### 功能應用 ##### 1. AI對話角色扮演 ```javascript // 對話練習 API 調用 (更新為GPT-4o-mini) POST https://api.openai.com/v1/chat/completions { "model": "gpt-4o-mini", "messages": [ { "role": "system", "content": "你是餐廳服務員,與客人進行英語對話練習。保持角色一致性,提供自然的回應。回應簡潔但有用。" }, { "role": "user", "content": "Good evening! I'd like to make a reservation for two." } ], "max_tokens": 100, // 降低token使用 "temperature": 0.7 } ``` ##### 2. 回覆卡關輔助 ```javascript // 回覆引導分析 (優化prompt降低成本) const guidancePrompt = ` 情境:${scenarioContext} 對方:${partnerMessage} 程度:${userLevel} 簡潔回覆: 1. 意圖:${intent} 2. 建議:${suggestion} 3. 範例:${examples} `; ``` ##### 3. 中翻英翻譯輔助 ```javascript // 翻譯服務 (GPT-4o-mini) POST https://api.openai.com/v1/chat/completions { "model": "gpt-4o-mini", "messages": [ { "role": "system", "content": "你是英語翻譯助手,將中文翻譯成自然英文,考慮對話情境。" }, { "role": "user", "content": "翻譯:${chineseText}\n情境:${context}" } ], "max_tokens": 80, "temperature": 0.3 } ``` #### API整合端點 - `/api/v1/dialogues/{dialogue_id}/message` - 對話回應 (GPT-4o-mini) - `/api/v1/dialogues/{dialogue_id}/assistance` - 回覆輔助 (GPT-4o-mini) - `/api/v1/translation/assistance` - 翻譯輔助 (GPT-4o-mini) #### 成本分析 (更新為GPT-4o-mini) - **GPT-4o-mini**: $0.15 / 1M input tokens, $0.60 / 1M output tokens - **Embeddings**: $0.02 / 1M tokens - **預估使用量** (優化後): - 對話練習: ~30,000 tokens/用戶/月 - 翻譯輔助: ~8,000 tokens/用戶/月 - **月度預估成本**: $15-50 USD (1000活躍用戶) - **節省80%成本** #### 技術文檔 - [OpenAI API Documentation](https://platform.openai.com/docs) - [GPT-4 Turbo Guide](https://platform.openai.com/docs/models/gpt-4-turbo-and-gpt-4) #### 開發時間 - **基礎整合**: 2-3週 - **提示工程優化**: 2-4週 - **測試和調優**: 2週 --- ### Microsoft 語言評估服務 *(新增)* #### Azure Cognitive Services - Language Understanding **服務提供商**: Microsoft Azure **用途**: 英語學習語言評估和分析 ##### 技術規格 - **API**: Text Analytics API v3.1 - **評估功能**: - 語法分析 (Grammar Analysis) - 語意理解 (Semantic Understanding) - 流暢度評估 (Fluency Assessment) - 詞彙豐富度 (Vocabulary Richness) - **支援語言**: 英文、繁體中文 ##### 功能應用 ```javascript // 語言分析 API 調用 POST https://[region].api.cognitive.microsoft.com/text/analytics/v3.1/analyze { "displayName": "English Learning Assessment", "analysisInput": { "documents": [ { "id": "1", "language": "en", "text": "Yes, I would like to make a reservation for two people tonight." } ] }, "tasks": { "sentimentAnalysisTasks": [{}], "keyPhraseExtractionTasks": [{}], "entityRecognitionTasks": [{}] } } // 語法檢查 (使用Microsoft Editor API) POST https://api.cognitive.microsoft.com/bing/v7.0/spellcheck { "text": "Yes, I would like to make a reservation for two people tonight.", "mode": "proof" } // 語言評估結果 { "overall_score": 85, "grammar_score": 90, "semantic_score": 88, "fluency_score": 82, "vocabulary_score": 83, "detailed_feedback": { "grammar_issues": [], "vocabulary_suggestions": ["Consider using 'this evening' instead of 'tonight'"], "fluency_notes": "Natural and appropriate for the context" } } ``` ##### API整合端點 - `/api/v1/dialogues/{dialogue_id}/analysis` - 語言分析 (Microsoft) - `/api/v1/language-assessment/evaluate` - 語言評估 (Microsoft) ##### 成本分析 - **Text Analytics**: $2 / 1000 requests - **Spell Check**: $3 / 1000 requests - **預估月成本**: $20-60 USD (1000活躍用戶) ##### 技術文檔 - [Azure Text Analytics](https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/) - [Bing Spell Check API](https://docs.microsoft.com/en-us/azure/cognitive-services/bing-spell-check/) --- ### 語音處理服務 #### Google Cloud Speech-to-Text (主選) **服務提供商**: Google Cloud **用途**: 用戶語音輸入識別 ##### 技術規格 - **API版本**: v1 - **支援語言**: en-US, zh-TW - **音頻格式**: FLAC, WAV, MP3 - **實時識別**: 支援串流識別 ##### 整合應用 ```javascript // 語音識別 API POST https://speech.googleapis.com/v1/speech:recognize { "config": { "encoding": "WEBM_OPUS", "sampleRateHertz": 48000, "languageCode": "en-US", "enableAutomaticPunctuation": true, "model": "latest_long" }, "audio": { "content": "//base64編碼音頻數據" } } ``` ##### 成本 - **標準識別**: $0.006 / 15秒 - **預估月成本**: $20-50 USD #### Google Cloud Text-to-Speech **服務提供商**: Google Cloud **用途**: AI角色語音生成 ##### 技術規格 - **API版本**: v1 - **語音類型**: Standard, WaveNet, Neural2 - **語言**: en-US, zh-TW - **輸出格式**: MP3, WAV ##### 整合應用 ```javascript // 語音合成 API POST https://texttospeech.googleapis.com/v1/text:synthesize { "input": {"text": "Welcome to Milano Restaurant!"}, "voice": { "languageCode": "en-US", "name": "en-US-Neural2-A", "ssmlGender": "FEMALE" }, "audioConfig": { "audioEncoding": "MP3", "speakingRate": 1.0, "pitch": 0.0 } } ``` ##### 成本 - **Neural2 語音**: $16 / 1M字符 - **預估月成本**: $20-40 USD #### 技術文檔 - [Google Cloud Speech](https://cloud.google.com/speech-to-text/docs) - [Google Cloud TTS](https://cloud.google.com/text-to-speech/docs) --- ## 📱 通訊與推播服務 ### Firebase Cloud Messaging **服務提供商**: Google Firebase **用途**: 跨平台推播通知服務 #### 技術規格 - **平台支援**: iOS, Android, Web - **訊息類型**: 通知訊息, 數據訊息 - **SDK**: firebase-admin (後端), firebase-messaging (前端) #### 應用場景 1. **學習提醒**: 每日學習時間到達 2. **命條回復**: 命條自動回復通知 3. **任務完成**: 每日任務完成提醒 4. **社交互動**: 好友挑戰邀請 5. **訂閱提醒**: 訂閱到期提醒 #### 技術整合 ```javascript // 後端發送通知 const admin = require('firebase-admin'); // 單個用戶推播 await admin.messaging().send({ token: userFCMToken, notification: { title: '命條已回復!', body: '您的命條已自動回復,快來繼續學習吧!' }, data: { type: 'life_point_recovery', current_points: '3' } }); // 主題推播 await admin.messaging().sendToTopic('daily_learners', { notification: { title: '每日挑戰', body: '新的每日任務已經準備好了!' } }); ``` #### 用戶通知設定 ```javascript // API 端點:更新通知偏好 PUT /api/v1/users/notification-settings { "push_notifications": true, "learning_reminders": true, "life_point_alerts": true, "social_notifications": false, "marketing_messages": false, "quiet_hours": { "enabled": true, "start": "22:00", "end": "08:00" } } ``` #### 數據庫結構 ```sql -- 用戶通知設定 CREATE TABLE user_notification_settings ( user_id UUID PRIMARY KEY REFERENCES users(user_id), fcm_token VARCHAR(255), platform VARCHAR(20), -- ios, android, web push_enabled BOOLEAN DEFAULT true, learning_reminders BOOLEAN DEFAULT true, life_point_alerts BOOLEAN DEFAULT true, social_notifications BOOLEAN DEFAULT true, quiet_hours JSONB DEFAULT '{}', created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW() ); ``` #### 成本 - **免費額度**: 無限制推播 - **開發時間**: 1-2週 #### 技術文檔 - [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging) - [Admin SDK Guide](https://firebase.google.com/docs/admin/setup) --- ### 廣告服務平台 #### AdMob (Google) **服務提供商**: Google AdMob **用途**: 行動應用廣告變現 #### 技術規格 - **廣告格式**: 橫幅廣告, 插頁廣告, 獎勵型影片 - **平台**: iOS, Android - **SDK**: Google Mobile Ads SDK #### 應用場景 - **命條回復**: 觀看30秒廣告獲得1命條 - **每日獎勵**: 觀看廣告獲得額外經驗值 - **鑽石獎勵**: 觀看廣告獲得少量鑽石 #### 技術整合 ```javascript // 前端 - 獎勵型廣告 import { RewardedAd } from '@react-native-google-ads/admob'; const rewardedAd = RewardedAd.createForAdRequest('ca-app-pub-xxx/xxx'); // 廣告載入完成後顯示 rewardedAd.addAdEventListener(RewardedAdEventType.EARNED_REWARD, reward => { // 調用後端 API 給予獎勵 apiClient.post('/api/v1/life-points/ad-reward', { ad_id: adUnitId, watch_completion: true, watch_duration: 30 }); }); // 後端 - 廣告獎勵驗證 POST /api/v1/ads/watch { "ad_id": "AD_REWARD_001", "watch_duration": 30, "completion_status": "completed" } Response 200 OK { "success": true, "data": { "reward_granted": { "type": "life_points", "quantity": 1 }, "cooldown_remaining": 3600, "daily_limit_remaining": 2 } } ``` #### 廣告管理規則 - **每日限制**: 最多5次廣告獎勵 - **冷卻時間**: 連續觀看間隔1小時 - **獎勵類型**: - 命條+1 (主要) - 經驗值+25 (次要) - 鑽石+5 (稀有) #### 收益分析 - **eCPM**: $1-3 USD (依地區) - **填充率**: 80-95% - **預估收益**: $50-200 USD/月 (依DAU) #### 技術文檔 - [AdMob Documentation](https://developers.google.com/admob) - [Rewarded Ads Guide](https://developers.google.com/admob/android/rewarded) --- ## ☁️ 雲端基礎設施服務 ### Amazon Web Services (AWS) #### EC2 (彈性運算雲) **用途**: 應用服務器託管 ##### 實例配置 ```yaml # 生產環境配置 Instance Type: t3.large - vCPU: 2 - Memory: 8 GB - Network: Up to 5 Gbps - Storage: EBS gp3 # 自動擴展配置 Auto Scaling Group: Min Size: 2 Max Size: 10 Target Capacity: 70% CPU ``` ##### 安全組配置 ```yaml Security Groups: Web-Server-SG: - HTTP (80) from ALB - HTTPS (443) from ALB - SSH (22) from Bastion Database-SG: - PostgreSQL (5432) from Web-Server-SG ``` #### Application Load Balancer (ALB) **用途**: 流量分發與SSL終止 ##### 配置 ```yaml Load Balancer: Type: Application Load Balancer Scheme: internet-facing Target Groups: - API-Servers (Port 8000) - Health Check: /health SSL Certificate: AWS Certificate Manager Listeners: - Port 443 (HTTPS) -> API-Servers - Port 80 (HTTP) -> Redirect to 443 ``` #### S3 + CloudFront CDN **用途**: 靜態資源存儲與分發 ##### S3 Bucket 結構 ``` dramaling-media/ ├── avatars/ # 用戶頭像 ├── vocabulary/ # 詞彙相關圖片 │ ├── images/ # 詞彙示意圖 │ └── audio/ # 發音音檔 ├── scenarios/ # 場景相關媒體 │ ├── backgrounds/ # 背景圖片 │ └── audio/ # 場景音效 └── system/ # 系統資源 ├── icons/ # UI圖標 └── animations/ # 動畫資源 ``` ##### CloudFront 配置 ```yaml Distribution: Origin: dramaling-media.s3.amazonaws.com Price Class: PriceClass_100 (US, Canada, Europe) Caching Behaviors: - /avatars/*: TTL 24h - /vocabulary/*: TTL 7d - /scenarios/*: TTL 7d Compression: Enabled HTTP Version: HTTP/2 ``` #### RDS (關聯式資料庫) **用途**: PostgreSQL數據庫託管 ##### 配置 ```yaml Database Engine: PostgreSQL 15 Instance Class: db.t3.medium - vCPU: 2 - Memory: 4 GB Storage: - Type: gp3 - Size: 100 GB - IOPS: 3000 Multi-AZ: Yes (生產環境) Backup Retention: 7 days ``` #### 成本預估 (月度) ```yaml 服務成本預估: EC2 (t3.large × 2): $67 × 2 = $134 ALB: $22 S3 Storage (50GB): $1.15 CloudFront (500GB transfer): $42.5 RDS (db.t3.medium): $58 Data Transfer: $20 總計: ~$280 USD/月 ``` #### 技術文檔 - [AWS EC2 Documentation](https://docs.aws.amazon.com/ec2/) - [AWS S3 Developer Guide](https://docs.aws.amazon.com/s3/) - [CloudFront Documentation](https://docs.aws.amazon.com/cloudfront/) --- ### 備選雲端平台 #### Google Cloud Platform - **Compute Engine**: VM 實例 - **Cloud Storage**: 檔案存儲 - **Cloud CDN**: 內容分發 - **Cloud SQL**: PostgreSQL託管 #### Microsoft Azure - **Virtual Machines**: 運算實例 - **Blob Storage**: 物件存儲 - **Azure CDN**: 內容分發 - **Azure Database**: PostgreSQL服務 --- ## 📊 監控與分析服務 ### New Relic (推薦) **服務提供商**: New Relic **用途**: 全棧應用效能監控 #### 功能範圍 - **APM**: API回應時間、錯誤率監控 - **Browser**: 前端效能監控 - **Mobile**: 行動應用監控 - **Synthetics**: 外部服務監控 - **Logs**: 集中化日誌管理 #### 監控指標 ```yaml 應用效能指標: API Response Time: - 95% < 200ms - 99% < 500ms Error Rate: - < 1% 4xx errors - < 0.1% 5xx errors Database Performance: - Query time < 50ms - Connection pool utilization < 80% 第三方服務監控: OpenAI API: - Response time < 3s - Success rate > 99% Stripe API: - Payment processing < 5s - Webhook delivery success > 95% ``` #### 告警設定 ```yaml Critical Alerts: - API error rate > 5% (5min) - Database connection failed - Payment processing failed > 10/min Warning Alerts: - API response time > 500ms (10min) - Memory usage > 85% - Disk usage > 80% ``` #### 成本 - **Lite計劃**: $99/月 (100GB資料保留) - **Pro計劃**: $349/月 (無限資料保留) #### 技術文檔 - [New Relic APM](https://docs.newrelic.com/docs/apm/) - [New Relic Mobile](https://docs.newrelic.com/docs/mobile-monitoring/) --- ### Datadog (備選) **服務提供商**: Datadog **用途**: 雲端監控與分析平台 #### 成本對比 - **Pro計劃**: $15/host/月 - **Enterprise**: $23/host/月 --- ## 📋 整合優先級與開發時程 ### 🔴 第一階段 - MVP核心功能 (8-10週) #### Week 1-2: 基礎認證系統 - [ ] **Apple ID 整合** (iOS) - 開發時間: 1週 - 測試時間: 3天 - 依賴: iOS開發環境設置 - [ ] **Google OAuth 整合** (Android/Web) - 開發時間: 1週 - 測試時間: 3天 - 依賴: Android/Web開發環境 #### Week 3-5: 支付系統核心 - [ ] **Stripe 基礎整合** - 開發時間: 2週 - 測試時間: 1週 - 功能範圍: 訂閱創建、狀態管理、Webhook處理 - [ ] **訂閱權限控制** - 開發時間: 3天 - API端點: `/api/v1/subscriptions/access-check` #### Week 6-8: AI語言服務 - [ ] **OpenAI GPT-4 整合** - 開發時間: 2週 - 功能範圍: - 對話角色扮演 - 基礎語言評估 - 回覆輔助系統 - [ ] **提示工程優化** - 開發時間: 1週 - 測試不同提示模板和參數 #### Week 9-10: 語音服務基礎 - [ ] **Google TTS 整合** - 開發時間: 3天 - 功能: AI角色語音生成 - [ ] **Google STT 整合** - 開發時間: 4天 - 功能: 用戶語音輸入識別 #### 第一階段交付成果 ✅ 用戶可以登入註冊 ✅ 訂閱系統正常運作 ✅ 基礎AI對話功能 ✅ 語音輸入輸出功能 ✅ 核心付費流程完整 --- ### 🟡 第二階段 - 功能增強 (4-6週) #### Week 11-12: 通訊服務 - [ ] **Firebase FCM 推播** - 開發時間: 1週 - 功能範圍: - 學習提醒 - 命條回復通知 - 任務完成提醒 - [ ] **通知偏好設定** - 開發時間: 3天 #### Week 13-14: 廣告系統 - [ ] **AdMob 獎勵廣告** - 開發時間: 1週 - 功能: 觀看廣告獲得命條 - [ ] **廣告獎勵管理** - 開發時間: 3天 - 每日限制、冷卻時間控制 #### Week 15-16: 本土支付 - [ ] **LINE Pay 整合** - 開發時間: 1週 - 針對台灣市場 - [ ] **街口支付整合** - 開發時間: 1週 #### 第二階段交付成果 ✅ 完整推播通知系統 ✅ 廣告獎勵機制 ✅ 台灣本土支付支援 --- ### 🟢 第三階段 - 優化與監控 (2-4週) #### Week 17-18: 發音評估 - [ ] **SpeechAce API 整合** - 開發時間: 1週 - 功能: 用戶發音評分 #### Week 19-20: 監控系統 - [ ] **New Relic APM 設置** - 設置時間: 3天 - 功能: 全面效能監控 - [ ] **告警系統配置** - 設置時間: 2天 #### 第三階段交付成果 ✅ 完整發音評估功能 ✅ 全面監控告警系統 ✅ 效能優化完成 --- ## 💰 成本分析與預算規劃 ### 月度成本預估 (USD) #### 核心服務成本 *(更新版)* ```yaml AI服務: OpenAI GPT-4o-mini: $15-50 (節省80%成本) Microsoft 語言評估: $20-60 Google Speech Services: $40-80 支付服務: iOS/Android內購: $0 (平台分潤30%/15%) 基礎設施: AWS (EC2, S3, RDS): $280-400 CloudFront CDN: $40-100 通訊服務: Firebase FCM: $0 (免費) AdMob: -$50 to -$200 (收益) 監控服務: New Relic: $99-349 總成本: $444-839 USD/月 (節省約40%成本) ``` #### 用戶規模成本預測 *(更新版)* ```yaml 1,000 活躍用戶: 月成本: ~$500 USD (節省$300) 單用戶成本: $0.50 USD 5,000 活躍用戶: 月成本: ~$1,200 USD (節省$800) 單用戶成本: $0.24 USD 10,000 活躍用戶: 月成本: ~$2,000 USD (節省$1,500) 單用戶成本: $0.20 USD ``` #### 收益平衡點分析 *(更新 - 台幣計價)* ```yaml 訂閱收益 (月費NT$600): - 付費轉換率 5%: 需150活躍用戶達平衡 (大幅降低) - 付費轉換率 10%: 需75活躍用戶達平衡 - 付費轉換率 15%: 需50活躍用戶達平衡 廣告收益 (輔助): - eCPM $2 USD - 10,000 DAU × 2廣告/天 = +$400 USD/月 平台分潤考量: - Apple/Google分潤: 30%(首年) / 15%(次年) - 實際收入: NT$420(首年) / NT$510(次年) ``` --- ### 成本優化建議 #### 短期優化 (0-6個月) 1. **使用AWS免費額度** - 節省$100-200/月 2. **OpenAI API優化** - 精簡提示詞,降低token消耗 3. **CDN緩存策略** - 提高緩存命中率,減少頻寬成本 #### 中期優化 (6-18個月) 1. **預留實例** - AWS EC2 Reserved Instances 節省30-60% 2. **多雲策略** - 對比AWS/GCP/Azure價格 3. **自建語音服務** - 評估自建TTS/STT成本效益 #### 長期優化 (18個月+) 1. **Edge computing** - CloudFlare Workers 減少延遲 2. **自建AI服務** - Fine-tuned模型降低API成本 3. **多區域部署** - 就近服務減少數據傳輸成本 --- ## ⚠️ 風險評估與備案 ### 服務中斷風險 #### 高風險服務 ```yaml OpenAI API: 風險等級: 高 影響範圍: 核心對話功能無法使用 備案方案: - Anthropic Claude API (備用) - Azure OpenAI Service (企業級) - 本地大模型部署 (長期) Stripe 支付: 風險等級: 高 影響範圍: 無法處理國際付款 備案方案: - PayPal Business (備用) - Square (北美市場) - 多支付方案並行 ``` #### 中風險服務 ```yaml Google Speech Services: 風險等級: 中 影響範圍: 語音功能受限 備案方案: - Azure Cognitive Services - Amazon Transcribe/Polly AWS 基礎設施: 風險等級: 中 影響範圍: 整體服務中斷 備案方案: - 多可用區部署 - GCP/Azure 災難恢復 ``` #### 低風險服務 ```yaml Firebase FCM: 風險等級: 低 備案方案: OneSignal, Pusher AdMob: 風險等級: 低 備案方案: Unity Ads, AppLovin ``` ### 服務限制與配額管理 #### API限制監控 ```yaml OpenAI API: - Rate Limit: 10,000 RPM - Token Limit: 2,000,000 TPM - 監控指標: 使用率、錯誤率 Google Speech API: - 配額: 1,000,000 requests/day - 監控: 日使用量追蹤 Stripe API: - Rate Limit: 25 requests/second - 監控: 交易成功率 ``` #### 超額處理機制 1. **降級服務**: 部分功能暫停 2. **排隊系統**: 非關鍵請求延後處理 3. **快取機制**: 減少API調用 4. **用戶通知**: 透明化服務狀態 ### 數據隱私與合規 #### GDPR 合規 (歐盟用戶) - [ ] 數據處理同意書 - [ ] 用戶數據導出功能 - [ ] 數據刪除right to be forgotten - [ ] 第三方數據處理協議 #### 兒童隱私保護 (COPPA) - [ ] 13歲以下用戶特殊處理 - [ ] 家長同意機制 - [ ] 限制數據收集範圍 --- ## 📋 開發檢查清單 ### 開發前準備 #### 帳號申請與設定 - [ ] **Apple Developer Account** ($99/年) - [ ] **Google Cloud Console** 專案設置 - [ ] **OpenAI API** 帳號與API密鑰 - [ ] **Stripe Account** 商戶帳號 - [ ] **AWS Account** 根帳號與IAM設置 - [ ] **Firebase Project** 建立與配置 #### 開發環境配置 - [ ] API密鑰環境變數設定 - [ ] SSL憑證申請與配置 - [ ] Webhook端點URL設定 - [ ] 測試環境與生產環境分離 ### 整合開發檢查 #### 認證服務測試 - [ ] Apple ID 登入流程測試 - [ ] Google OAuth 登入測試 - [ ] JWT Token 驗證機制 - [ ] 用戶資料同步驗證 #### 支付系統測試 - [ ] Stripe 測試卡交易 - [ ] 訂閱創建與續費流程 - [ ] Webhook事件處理 - [ ] 退款與取消流程 - [ ] 本土支付方案測試 #### AI服務測試 - [ ] GPT-4 對話回應品質 - [ ] 語言評估準確性 - [ ] 翻譯服務準確性 - [ ] API回應時間監控 - [ ] Token使用量優化 #### 語音服務測試 - [ ] TTS語音品質測試 - [ ] STT識別準確率測試 - [ ] 多語言支援驗證 - [ ] 音頻格式相容性 ### 上線前檢查 #### 安全性檢查 - [ ] API密鑰安全存儲 - [ ] HTTPS強制啟用 - [ ] 用戶資料加密 - [ ] SQL注入防護 - [ ] XSS攻擊防護 #### 效能測試 - [ ] API回應時間 < 2秒 - [ ] 數據庫查詢優化 - [ ] CDN緩存配置 - [ ] 負載測試 (1000並發) #### 監控配置 - [ ] New Relic APM設置 - [ ] 錯誤告警配置 - [ ] 關鍵指標監控 - [ ] 日誌收集配置 #### 災難恢復 - [ ] 數據備份機制 - [ ] 服務降級方案 - [ ] 故障轉移測試 - [ ] 恢復時間目標 (RTO < 1小時) --- ## 📖 技術文檔與資源 ### 官方文檔連結 #### 認證服務 - [Apple Sign In Guide](https://developer.apple.com/sign-in-with-apple/get-started/) - [Google Identity Platform](https://cloud.google.com/identity-platform) #### 支付服務 - [Stripe Integration Guide](https://stripe.com/docs/payments/quickstart) - [LINE Pay API Documentation](https://pay.line.me/tw/developers/apis/onlineApis) #### AI與語音服務 - [OpenAI API Reference](https://platform.openai.com/docs/api-reference) - [Google Cloud Speech-to-Text](https://cloud.google.com/speech-to-text/docs/quickstart) - [Google Cloud Text-to-Speech](https://cloud.google.com/text-to-speech/docs) #### 基礎設施 - [AWS Well-Architected Framework](https://aws.amazon.com/architecture/well-architected/) - [Firebase Documentation](https://firebase.google.com/docs) ### 開發工具與SDK #### 前端SDK ```bash # React Native npm install @react-native-async-storage/async-storage npm install @react-native-firebase/app npm install @react-native-google-signin/google-signin npm install react-native-iap # iOS/Android in-app purchases # iOS Native # StoreKit 2 (built-in) pod 'Firebase/Messaging' # Android implementation 'com.android.billingclient:billing:5.0.0' # Google Play Billing implementation 'com.google.firebase:firebase-messaging' ``` #### 後端SDK ```bash # Node.js npm install openai npm install @azure/cognitiveservices-textanalytics # Microsoft language evaluation npm install firebase-admin npm install @google-cloud/speech npm install @google-cloud/text-to-speech # Python pip install openai pip install azure-cognitiveservices-language-textanalytics # Microsoft language evaluation pip install firebase-admin pip install google-cloud-speech pip install google-cloud-texttospeech ``` ### 測試工具與環境 #### API測試工具 - **Postman Collection**: 第三方API測試集合 - **iOS Simulator**: in-app purchase測試 - **Android Debug Bridge**: Google Play Console測試 - **ngrok**: 本地開發環境公開URL #### 監控與除錯 - **New Relic Browser**: 前端效能監控 - **App Store Connect**: iOS購買狀態監控 - **Google Play Console**: Android購買監控 - **Firebase Console**: 推播發送監控 - **OpenAI Playground**: GPT-4o-mini模型測試 - **Azure Portal**: Microsoft API監控 --- ## 📋 服務整合優先序與總覽 ### 第一階段 - 核心功能 (MVP階段,1-2個月) 1. **Firebase Authentication** - 用戶登入與註冊 2. **iOS App Store + Google Play in-app purchases** - 訂閱收費 3. **OpenAI GPT-4o-mini** - 對話生成與輔助 4. **Google Cloud Speech-to-Text + Text-to-Speech** - 語音互動 5. **Firebase Cloud Messaging** - 推播通知 ### 第二階段 - 進階功能 (產品優化,2-4個月) 6. **Microsoft Azure Cognitive Services** - 語言評估 7. **AWS RDS (PostgreSQL)** - 數據庫託管 8. **AWS S3 + CloudFront** - 媒體檔案存儲 9. **Google/Apple Sign-In** - 第三方登入 10. **New Relic** - 效能監控 ### 第三階段 - 系統完善 (擴展階段,4-6個月) 11. **AWS Load Balancer + Auto Scaling** - 負載平衡 12. **MongoDB Atlas** - NoSQL數據存儲 13. **Twilio SendGrid** - 電子郵件服務 14. **AWS CloudWatch** - 系統監控 15. **OneSignal** - 進階推播功能 ### 整體成本效益分析 - **月度總成本**: $500-800 USD (1000活躍用戶) - **相較原規格節省**: 約40%成本 (主要來自支付系統和AI服務優化) - **台灣市場聚焦**: 降低多區域部署成本 - **技術債務風險**: 低 (使用成熟服務) ### 技術架構優勢 - **原生支付整合**: 更好的用戶體驗,更低手續費 - **成本優化AI**: GPT-4o-mini提供80%成本節省 - **專業語言評估**: Microsoft API提供更精確的學習評估 - **台灣本地化**: 專注單一市場,降低複雜性 --- ## 📅 維護與更新計劃 ### 定期維護任務 #### 每週檢查 - [ ] API配額使用狀況 - [ ] 錯誤率監控檢視 - [ ] 支付成功率檢查 - [ ] 推播發送狀態 #### 每月檢查 - [ ] 成本分析與優化 - [ ] 安全更新檢查 - [ ] 效能基準測試 - [ ] 第三方服務更新確認 #### 每季檢查 - [ ] 服務合約續約評估 - [ ] 新服務評估與測試 - [ ] 災難恢復演練 - [ ] 合規要求更新 ### 服務升級計劃 #### 短期升級 (3-6個月) 1. **OpenAI GPT-4o-mini** → **GPT-5** (發布後) 2. **基礎監控** → **進階AI監控** 3. **台灣單區域部署** → **亞太多區域部署** #### 中期升級 (6-12個月) 1. **評估自建語音服務** 成本效益 2. **實施邊緣運算** 降低延遲 3. **評估其他亞洲市場** 擴展機會 #### 長期升級 (12個月+) 1. **自訓練AI模型** 降低成本 2. **多語言版本** 國際化擴展 3. **企業級安全** 認證取得 --- **文件版本**: v1.0 **建立日期**: 2024年9月6日 **負責人**: 技術團隊 **審查週期**: 每月檢討更新 **下次審查**: 2024年10月6日 --- ## 變更記錄 | 版本 | 日期 | 變更內容 | 負責人 | |------|------|----------|---------| | v1.0 | 2024-09-06 | 初始文件建立,涵蓋15個主要第三方服務 | Claude | | v1.1 | 2024-09-06 | 規格修正:改用iOS/Android內購、GPT-4o-mini、Microsoft語言評估 | Claude | | | | | | | | | | |