1494 lines
37 KiB
Markdown
1494 lines
37 KiB
Markdown
# 第三方服務整合規格文件 (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<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
|
||
```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 |
|
||
| | | | |
|
||
| | | | | |