37 KiB
第三方服務整合規格文件 (Third-Party Integration Specification)
文件概述
本文件詳細定義了Drama Ling應用程式需要整合的所有第三方服務,包括技術規格、整合優先級、成本分析和風險評估。為開發團隊提供完整的第三方服務整合指引。
目標讀者: 開發團隊、架構師、產品經理、專案經理
維護頻率: 每月檢視更新
版本: v1.0
最後更新: 2024年9月6日
📊 服務總覽
整合服務統計 (更新基於規格修正)
- 總服務數量: 12個主要服務 (移除Stripe、本土支付、SpeechAce)
- 核心服務: 7個 (MVP必需)
- 擴展服務: 5個 (後續優化)
- 預估月度成本: $100-250 USD (大幅降低)
服務分類 (更新版)
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'
開發需求
// 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不收取費用
- 開發時間: 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'
開發需求
// 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不收取費用
- 開發時間: 1-2週
💳 支付與訂閱服務
iOS App Store 內購 (主要支付平台)
服務提供商: Apple App Store
用途: iOS用戶訂閱和購買服務
技術規格
- API: StoreKit 2 (iOS 15+)
- 支援幣種: TWD (台幣)
- 支付方式: Apple ID綁定的付款方式
- 功能模組:
- 自動續訂訂閱
- 消耗型/非消耗型內購
- 家庭共享支援
整合點
- 訂閱系統: 月費NT$600 自動續訂訂閱
- 道具購買: 鑽石、命條、回覆提示等消耗型商品
- 內容包購買: 場景包、詞彙包等非消耗型商品
API整合 (iOS)
// 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 通知
// Apple Server Notifications V2
POST /webhooks/app-store
{
"signedPayload": "eyJ..." // JWT from Apple
}
// 通知類型處理
- SUBSCRIBED: 新訂閱
- DID_RENEW: 續訂成功
- EXPIRED: 訂閱過期
- DID_FAIL_TO_RENEW: 續訂失敗
- REFUND: 退款處理
數據庫結構
-- 訂閱記錄 (更新為雙平台內購)
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()
);
技術文檔
成本分析
- 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)
// 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<Purchase>?) {
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
// 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對話角色扮演
// 對話練習 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. 回覆卡關輔助
// 回覆引導分析 (優化prompt降低成本)
const guidancePrompt = `
情境:${scenarioContext}
對方:${partnerMessage}
程度:${userLevel}
簡潔回覆:
1. 意圖:${intent}
2. 建議:${suggestion}
3. 範例:${examples}
`;
3. 中翻英翻譯輔助
// 翻譯服務 (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%成本
技術文檔
開發時間
- 基礎整合: 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)
- 支援語言: 英文、繁體中文
功能應用
// 語言分析 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活躍用戶)
技術文檔
語音處理服務
Google Cloud Speech-to-Text (主選)
服務提供商: Google Cloud
用途: 用戶語音輸入識別
技術規格
- API版本: v1
- 支援語言: en-US, zh-TW
- 音頻格式: FLAC, WAV, MP3
- 實時識別: 支援串流識別
整合應用
// 語音識別 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
整合應用
// 語音合成 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
技術文檔
📱 通訊與推播服務
Firebase Cloud Messaging
服務提供商: Google Firebase
用途: 跨平台推播通知服務
技術規格
- 平台支援: iOS, Android, Web
- 訊息類型: 通知訊息, 數據訊息
- SDK: firebase-admin (後端), firebase-messaging (前端)
應用場景
- 學習提醒: 每日學習時間到達
- 命條回復: 命條自動回復通知
- 任務完成: 每日任務完成提醒
- 社交互動: 好友挑戰邀請
- 訂閱提醒: 訂閱到期提醒
技術整合
// 後端發送通知
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: '新的每日任務已經準備好了!'
}
});
用戶通知設定
// 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"
}
}
數據庫結構
-- 用戶通知設定
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週
技術文檔
廣告服務平台
AdMob (Google)
服務提供商: Google AdMob
用途: 行動應用廣告變現
技術規格
- 廣告格式: 橫幅廣告, 插頁廣告, 獎勵型影片
- 平台: iOS, Android
- SDK: Google Mobile Ads SDK
應用場景
- 命條回復: 觀看30秒廣告獲得1命條
- 每日獎勵: 觀看廣告獲得額外經驗值
- 鑽石獎勵: 觀看廣告獲得少量鑽石
技術整合
// 前端 - 獎勵型廣告
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)
技術文檔
☁️ 雲端基礎設施服務
Amazon Web Services (AWS)
EC2 (彈性運算雲)
用途: 應用服務器託管
實例配置
# 生產環境配置
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
安全組配置
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終止
配置
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 配置
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數據庫託管
配置
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
成本預估 (月度)
服務成本預估:
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/月
技術文檔
備選雲端平台
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: 集中化日誌管理
監控指標
應用效能指標:
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%
告警設定
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/月 (無限資料保留)
技術文檔
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)
核心服務成本 (更新版)
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%成本)
用戶規模成本預測 (更新版)
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
收益平衡點分析 (更新 - 台幣計價)
訂閱收益 (月費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個月)
- 使用AWS免費額度 - 節省$100-200/月
- OpenAI API優化 - 精簡提示詞,降低token消耗
- CDN緩存策略 - 提高緩存命中率,減少頻寬成本
中期優化 (6-18個月)
- 預留實例 - AWS EC2 Reserved Instances 節省30-60%
- 多雲策略 - 對比AWS/GCP/Azure價格
- 自建語音服務 - 評估自建TTS/STT成本效益
長期優化 (18個月+)
- Edge computing - CloudFlare Workers 減少延遲
- 自建AI服務 - Fine-tuned模型降低API成本
- 多區域部署 - 就近服務減少數據傳輸成本
⚠️ 風險評估與備案
服務中斷風險
高風險服務
OpenAI API:
風險等級: 高
影響範圍: 核心對話功能無法使用
備案方案:
- Anthropic Claude API (備用)
- Azure OpenAI Service (企業級)
- 本地大模型部署 (長期)
Stripe 支付:
風險等級: 高
影響範圍: 無法處理國際付款
備案方案:
- PayPal Business (備用)
- Square (北美市場)
- 多支付方案並行
中風險服務
Google Speech Services:
風險等級: 中
影響範圍: 語音功能受限
備案方案:
- Azure Cognitive Services
- Amazon Transcribe/Polly
AWS 基礎設施:
風險等級: 中
影響範圍: 整體服務中斷
備案方案:
- 多可用區部署
- GCP/Azure 災難恢復
低風險服務
Firebase FCM:
風險等級: 低
備案方案: OneSignal, Pusher
AdMob:
風險等級: 低
備案方案: Unity Ads, AppLovin
服務限制與配額管理
API限制監控
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
- 監控: 交易成功率
超額處理機制
- 降級服務: 部分功能暫停
- 排隊系統: 非關鍵請求延後處理
- 快取機制: 減少API調用
- 用戶通知: 透明化服務狀態
數據隱私與合規
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小時)
📖 技術文檔與資源
官方文檔連結
認證服務
支付服務
AI與語音服務
基礎設施
開發工具與SDK
前端SDK
# 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
# 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個月)
- Firebase Authentication - 用戶登入與註冊
- iOS App Store + Google Play in-app purchases - 訂閱收費
- OpenAI GPT-4o-mini - 對話生成與輔助
- Google Cloud Speech-to-Text + Text-to-Speech - 語音互動
- Firebase Cloud Messaging - 推播通知
第二階段 - 進階功能 (產品優化,2-4個月)
- Microsoft Azure Cognitive Services - 語言評估
- AWS RDS (PostgreSQL) - 數據庫託管
- AWS S3 + CloudFront - 媒體檔案存儲
- Google/Apple Sign-In - 第三方登入
- New Relic - 效能監控
第三階段 - 系統完善 (擴展階段,4-6個月)
- AWS Load Balancer + Auto Scaling - 負載平衡
- MongoDB Atlas - NoSQL數據存儲
- Twilio SendGrid - 電子郵件服務
- AWS CloudWatch - 系統監控
- OneSignal - 進階推播功能
整體成本效益分析
- 月度總成本: $500-800 USD (1000活躍用戶)
- 相較原規格節省: 約40%成本 (主要來自支付系統和AI服務優化)
- 台灣市場聚焦: 降低多區域部署成本
- 技術債務風險: 低 (使用成熟服務)
技術架構優勢
- 原生支付整合: 更好的用戶體驗,更低手續費
- 成本優化AI: GPT-4o-mini提供80%成本節省
- 專業語言評估: Microsoft API提供更精確的學習評估
- 台灣本地化: 專注單一市場,降低複雜性
📅 維護與更新計劃
定期維護任務
每週檢查
- API配額使用狀況
- 錯誤率監控檢視
- 支付成功率檢查
- 推播發送狀態
每月檢查
- 成本分析與優化
- 安全更新檢查
- 效能基準測試
- 第三方服務更新確認
每季檢查
- 服務合約續約評估
- 新服務評估與測試
- 災難恢復演練
- 合規要求更新
服務升級計劃
短期升級 (3-6個月)
- OpenAI GPT-4o-mini → GPT-5 (發布後)
- 基礎監控 → 進階AI監控
- 台灣單區域部署 → 亞太多區域部署
中期升級 (6-12個月)
- 評估自建語音服務 成本效益
- 實施邊緣運算 降低延遲
- 評估其他亞洲市場 擴展機會
長期升級 (12個月+)
- 自訓練AI模型 降低成本
- 多語言版本 國際化擴展
- 企業級安全 認證取得
文件版本: 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 |