# 新应用配置模板 创建新应用时,请填写以下配置信息。 *** ## 一、应用基本信息 | 配置项 | 值 | 说明 | | ------------- | ------------------- | ------------------- | | 应用名称 | `FunyMee AI` | 如:FunyMee AI | | Android 包名 | `com.funymeeai.app` | 如:com.funymeeai.app | | iOS Bundle ID | `com.funymeeai.app` | 如:com.funymeeai.app | | 应用 ID(appId) | `com.funymeeai.app` | 后台接口参数用 | *** ## 二、服务器配置 | 配置项 | 值 | 说明 | | --------- | --------------------------------- | ------------------------------- | | 预发布环境 URL | `pre-ai.funymee.space` | 如: | | 生产环境 URL | `ai.funymee.space` | 如: | | 代理接口路径 | `/workshop/lounge/hub/playground` | 如:/v1/proxy | *** ## 三、代理请求体字段配置 | 配置项 | 值 | 说明 | | ------------------- | ---------------------------------------------------------- | ----------------------------------------------------- | | appId 明文 | `humor_level` | 如:hero\_class | | 原始path | `comedy_style` | 如:pet\_species | | "POST"或"GET" | `avatar_mode` | 如:power\_level | | 映射后的Header字段名构造JSON | `filter_type` | 如:quest\_rank | | 映射后的URL参数字段名构造JSON | `scene_id` | 如:battle\_score | | V2包装后的业务数据 | `clip_duration` | 如:loyalty\_index | | 噪音字段名列表 | `['sample_rate','watermark_id','geo_radius','accuracy_m']` | 如:\['billing\_addr', 'utm\_term', 'cluster\_id', ...] | *** ## 四、V2 包装配置 | 配置项 | 值 | 说明 | | ------- | ------------------------------------------------------------------------------ | ---------------------------------------------------------- | | V2 层级 | `shell` | 如:arsenal | | V2 层级值 | `2` | 如:4 | | V2 层级路径 | `['capsule','envelope','container']` | 如:\['vault', 'tome', 'codex', 'grimoire', 'sanctum'] | | 噪音字段名列表 | `['shimmer','glimmer','flicker','sparkle','rustle','murmur','whisper','echo']` | 如:\['roar', 'clash', 'thunder', 'rumble', 'howl', 'growl'] | *** ## 五、安全配置 | 配置项 | 值 | 说明 | | ------ | ------------------ | --------------- | | AES 密钥 | `gLYeTRc2uNTcNH8e` | 用于请求加密,必须 16 字符 | *** ## 五点五、extConfig(`skin_config.json`,换皮即配) 在 **`skin_config.json` 根级**增加 `extConfig` 后,无需改代码即可指定: 1. **逻辑字段** ↔ 线上下发 JSON **键名** 的候选列表(兼容多版本后端键名)。 2. **`defaults`**:本地默认对象(与 `common_info.extConfig` **同一套 wire 键**);`common_info` 成功后会与服务器 JSON **浅合并**,**服务器顶层键覆盖同名键**。 典型结构见仓库内 `assets/skin_config.json` 的 `extConfig` 示例;框架内类型为 `ExtConfigKeySchema` / `SkinExtConfigSection`(`client_proxy_framework`)。 | 子节 | 说明 | |------|------| | `keys.showVideoMenu` | 字符串数组,如 `["go_run","need_wait"]`,依次为布尔字段候选键 | | `keys.allowScreenshot` | 直接表示「允许截屏」的键,如 `["screen"]` | | `keys.blockScreenshot` | 为 `true` 时表示**禁止**截屏的键,如 `["safe_area"]` | | `keys.allowThirdPartyPayment` | 如 `["san_fang","lucky"]` | | `keys.privacyUrl` / `agreementUrl` / `items` | 隐私、协议 URL、items 数组所在键名 | | `itemKeys` | **固定列表项字段**(不含业务上可省略的兜底图时,可不写 `imageFix`,框架默认 `image_fix`):`image`、`imgNeed`、`cost`、`title`、`params`、`detail`;`imageFix` 可选 | | `defaults` | 与线上下发相同键名的对象,可放静态 `items` 列表供无网或后台未下发时使用 | 省略整个 `extConfig` 时,解析行为与内置默认键名一致(见 FunyMee 开发手册 §5.5)。 *** ## 六、Adjust SDK 配置 | 配置项 | 值 | 说明 | | ----------- | ------------------------ | -------------------------- | | App Token | `chflzzr4x5hc` | Adjust Dashboard 获取 | | Environment | `sandbox` / `production` | 测试用 sandbox,正式用 production | ### Adjust 事件 Token(如有自定义) | 事件名称 | 事件 Token | | --------- | -------- | | 首充 | `qlw4fp` | | 购买 | `b2ms4n` | | 注册 | `2k7vm5` | | $5.99 档位 | `mtzzqk` | | $9.99 档位 | `m9ivl1` | | $19.99 档位 | `kp7a52` | | $49.99 档位 | `ojlx1r` | | $99.99 档位 | `hue6dt` | *** ## 七、Facebook SDK 配置 | 配置项 | 值 | 说明 | | ------------ | -------------------- | ----------------------------- | | App ID | `填写 Facebook App ID` | Facebook Developer Console 获取 | | Client Token | `填写 Client Token` | Facebook Developer Console 获取 | > MethodChannel 名称:框架自动使用 `{packageName}/facebook_sdk`,无需配置 *** ## 八、字段映射配置(可选) 如有特殊字段映射需求请填写,默认使用框架默认映射。 | 原始字段 | V2字段 | |----------|--------| | User_token | comedy | | accountId | meme | | accountName | avatar | | activityId | character | | activitys | animate | | actualAmount | sketch | | addCredits | remix | | adsTokenId | humor | | age | intensity | | amount | cartoon | | animate | duration | | app | sticker | | appFbConfig | stylize | | appType | reaction | | appraise | render | | approveState | clip | | aspectRatio | caption | | automaticRenewal | punchline | | avatar | frequency | | baseCredits | opacity | | baseUrl | joke | | begTime | gag | | bonus | contrast | | bonusCredits | saturation | | bonusRatio | sharpness | | businessId | angle | | businessType | offset | | campaignInfo | parody | | card | spoof | | categoryId | scale | | categoryName | rotation | | ch | satire | | channel | skit | | channelType | reel | | client | filter | | clientId | template | | code | scene | | coder | panel | | config | edit | | content | gradient | | contentType | comic | | count | bubble | | countId | share | | country | overlay | | countryCode | publish | | creatTime | palette | | createTime | typography | | createTimeText | layout | | credit | export | | creditPromotion | apply | | credits | padding | | creditsRecordUrl | swap | | cryptoInvoiceUrl | merge | | currency | mascot | | current | blend | | cvcCode | persona | | data | costume | | days | backdrop | | department | resize | | desc | kurtosis | | description | crop | | devId | frame | | deviceId | stage | | discountOff | margin | | domain | theme | | domains | adjust | | dt | mood | | duration | preview | | email | draft | | enable_music | vibe | | enabled | customize | | endTime | expression | | event | gesture | | expectedSize | pose | | expireMonth | outfit | | expireYear | trait | | expiresIn | upload | | ext | profile | | extConfig | download | | extJson | gallery | | face | border | | faceIndex | radius | | faceInfos | discover | | face_index | shadow | | fbClientId | glow | | fbClientToken | blur | | feature | browse | | features | explore | | feedbackId | grain | | feedbackIds | showcase | | fileName | feed | | fileName1 | trending | | fileName2 | spotlight | | filePath | search | | filePath1 | generate | | filePath2 | transform | | fileUrls | texture | | filterCountry | collection | | filterDomain | badge | | filterOwnerId | reward | | filterStatus | quest | | filterTaskType | caucus | | filterVip | allowance | | firstName | appendix | | firstRegister | enhance | | forcePayCenter | convert | | fps | lineage | | frameIndex | pattern | | frame_index | motion | | freeBlurTimes | tag | | freeTimes | label | | gender | speed | | googleClientId | roster | | h5UrlConfig | rank | | hasNext | rate | | hash | medallion | | hashIsZero | member | | headFaceIndex | entry | | headImg | terminal | | headPos | repository | | headType | delegate | | hint | vote | | hlsUrl | precision | | host | nominee | | icon | delay | | id | timing | | imageCount | bounce | | imageFaceIndex | digest | | imageId | registration | | imageInfos | elastic | | img | circular | | imgCount | indicator | | imgId | histogram | | imgList | easing | | imgType | compressive | | imgUrl | boost | | index | weight | | inviteBy | socket | | invitedCnt | pin | | isBlur | archive | | isVip | restore | | issuerUrl | duplicate | | keepUserId | campus | | label | density | | lang | venture | | lastName | council | | lastUpdateTime | follow | | launchImgUrl | coverage | | link | capital | | list | ordinance | | lowUrl | durability | | maxLimit | like | | method | listing | | methodActivitys | comment | | methodChannels | collect | | model | exhibit | | msg | sprint | | name | alignment | | needCredits | colorize | | needImage | edge | | needUndress | authorization | | needopt | team | | negativePrompt | delegation | | note | spacing | | openType | morph | | optimizeCountSql | reface | | optimizeJoinOfCountSql | voice | | orderId | franchise | | orders | sync | | originAmount | brochure | | owner | heritage | | p12KeyPath | tally | | packageName | accolade | | page | session | | pages | loop | | password | scope | | payCenterUrl | schedule | | payId | depth | | payMethod | layer | | payMethods | cluster | | payStatus | submit | | payTime | channel | | payTypeList | introspect | | payUrl | objectify | | paylink | segment | | paymentMethod | ledger | | paymentMethods | invoke | | permissions | terminate | | phone | sponsor | | pkg | stakeholder | | platform | abstract | | previewImage | slice | | previewVideo | anchor | | productType | pivot | | progress | origin | | prompt | appointment | | publicKey | thread | | purchaseData | gauge | | queueCnt | endpoint | | read | midpoint | | receipt | funnel | | recent | fabricate | | recentlyUsed | breakpoint | | recommend | threshold | | records | create | | redirectUrl | reformat | | referer | link | | refererType | complex | | reply | amplitude | | replyStatus | calendar | | requiredHeaders | tokenize | | resolution | consortium | | resolution480p | span | | resolution720p | factor | | resulotion | correctness | | rewardCredits | sigma | | rewardRatio | gutter | | role | transport | | searchCount | transmit | | selected | adaptive | | serviceAccountEmail | balance | | sharedSecret | stake | | showName | constant | | sign | mandate | | signature | selection | | size | seminar | | sort | overtone | | srcFaceImgBase64 | tournament | | srcFaceIndex | circuit | | srcImg | permission | | srcImg1 | crew | | srcImg1Url | consulate | | srcImg2 | lease | | srcImg2Url | glossary | | srcImgBase64 | dynasty | | srcImgUrl | logbook | | srcVideo | commendation | | state | bitrate | | status | wallet | | style | module | | subBusinessType | keepalive | | subPaymentMethod | bundle | | subScribeValidTime | recognize | | subscriptionActivitys | cap | | subscriptionPeriod | unicast | | sumCredits | assert | | sys | load | | t2IConfig | reboot | | tag | remainder | | tags | enqueue | | targetId | manifest | | targetInvitedCnt | unpack | | taskId | exponential | | taskIds | vendor | | taskType | liaison | | taskTypes | synopsis | | templateFaceUrl | quantized | | templateFifCredits | compressed | | templateFifDuration | usability | | templateFifUrl | tension | | templateName | itinerary | | templateTfCredits | capitalization | | templateTfDuration | demodulation | | templateTfUrl | convergence | | templateType | ringing | | templateTypes | dialogue | | templateUrl | refractive | | templates | microscopic | | tgId | chart | | tgName | spend | | tgOrderId | microservice | | theme | capacity | | title | interval | | token | attachment | | total | insert | | totalUnreadCount | promote | | transactionId | installation | | truePrompt | coalition | | ts | debit | | type | revenue | | types | standard | | unreadCountList | weigh | | updateTime | overflow | | uploadUrl | update | | uploadUrl1 | harden | | uploadUrl2 | complete | | url | altitude | | user | resistance | | userApplePayList | variety | | userId | symposium | | userInfoType | carnival | | userName | supplement | | userToken | disambiguate | | userType | resample | | username | ring | | usign | reauthenticate | | val | compliance | | value | platoon | | verifyCode | taskforce | | videoDuration | hue | | videoFaceIndex | escrow | | videoFrameIndex | periodical | | videoSize | genealogy | | videoUrl | postprocess | | waitTime | acuity | | x1 | angular | | x2 | enthalpy | | y1 | binormal | | y2 | manifold | *** ## 九、其他配置(如有) | 配置项 | 值 | 说明 | | ----------- | ----------- | ---------- | | 调试基础 URL 覆盖 | `填写调试用 URL` | 仅调试时使用,可留空 | |
|
|
| *** ## 十、填写完成后的配置示例 ```dart // app_config.dart class NewAppConfig extends AppConfig { @override String get appId => 'your_app_id'; @override String get packageName => 'com.example.app'; @override String get aesKey => 'your_32_characters_key_here'; @override String get preBaseUrl => 'https://pre-api.example.com'; @override String get prodBaseUrl => 'https://api.example.com'; @override String get proxyPath => '/v1/proxy'; @override ProxyKeysConfig get proxyKeys => const ProxyKeysConfig( appIdField: 'hero_class', pathField: 'pet_species', methodField: 'power_level', headerField: 'quest_rank', paramsField: 'battle_score', bodyField: 'loyalty_index', noiseKeys: ['billing_addr', 'utm_term', 'cluster_id', 'lsn_value', 'accuracy_val', 'dir_path'], ); @override String get v2LevelField => 'arsenal'; @override int get v2LevelFixedValue => 4; @override List get v2SanctumPath => const ['vault', 'tome', 'codex', 'grimoire', 'sanctum']; @override List get v2NoiseKeys => const ['roar', 'clash', 'thunder', 'rumble', 'howl', 'growl']; @override FieldMapping get fieldMapping => _appFieldMapping; /// 从上方「字段映射配置」表格中获取完整映射 /// ⚠️ 请务必将表格中的所有映射键值对复制到此处 static final _appFieldMapping = FieldMapping({ // 请将「八、字段映射配置」表格中的所有字段复制到此处 // 格式: '原始字段': 'V2字段', // 例如: 'User_token': 'comedy', }); } // main.dart await AnalyticsService.init( AnalyticsConfig( packageName: 'com.example.app', adjustConfig: AdjustConfig( appToken: 'your_adjust_app_token', environment: AdjustEnv.sandbox, ), facebookConfig: FacebookConfig( appId: 'your_facebook_app_id', clientToken: 'your_facebook_client_token', ), ), ); ``` *** **填写完成后发送给我,我将根据此配置创建完整的应用代码。**