gangvy 5 달 전
부모
커밋
5d00052b1c
73개의 변경된 파일920개의 추가작업 그리고 564개의 파일을 삭제
  1. 8 7
      competitor-analysis/competitor-bsr-tracking/api-config.json
  2. 8 7
      competitor-analysis/competitor-discovery/api-config.json
  3. 8 7
      competitor-analysis/competitor-pricing-analysis/api-config.json
  4. 8 7
      competitor-analysis/competitor-product-comparison/api-config.json
  5. 8 7
      douyin/douyin-comment-replies/api-config.json
  6. 8 7
      douyin/douyin-general-search/api-config.json
  7. 8 7
      douyin/douyin-hashtag-search/api-config.json
  8. 8 7
      douyin/douyin-user-profile/api-config.json
  9. 8 7
      douyin/douyin-user-search/api-config.json
  10. 8 7
      douyin/douyin-video-comments/api-config.json
  11. 8 7
      douyin/douyin-video-detail/api-config.json
  12. 8 7
      jimeng/jimeng-actor-v2/api-config.json
  13. 8 7
      jimeng/jimeng-actor/api-config.json
  14. 8 7
      jimeng/jimeng-clothes-v2/api-config.json
  15. 8 7
      jimeng/jimeng-img-v4-goods/api-config.json
  16. 8 7
      jimeng/jimeng-img-v4-pod/api-config.json
  17. 8 7
      jimeng/jimeng-img-v4/api-config.json
  18. 8 7
      jimeng/jimeng-img2img-v3/api-config.json
  19. 8 7
      jimeng/jimeng-inpaint/api-config.json
  20. 8 7
      jimeng/jimeng-oh-detect/api-config.json
  21. 8 7
      jimeng/jimeng-oh-generate/api-config.json
  22. 8 7
      jimeng/jimeng-oh-identify/api-config.json
  23. 8 7
      jimeng/jimeng-oh-query/api-config.json
  24. 8 7
      jimeng/jimeng-super-resolution/api-config.json
  25. 8 7
      jimeng/jimeng-task-query/api-config.json
  26. 8 7
      jimeng/jimeng-text2img-v3/api-config.json
  27. 8 7
      jimeng/jimeng-text2img-v31/api-config.json
  28. 8 7
      jimeng/jimeng-video-v3-1080p/api-config.json
  29. 8 7
      jimeng/jimeng-video-v3-720p/api-config.json
  30. 8 7
      jimeng/jimeng-video-v3-pro/api-config.json
  31. 8 7
      review-analysis/review-batch-collection/api-config.json
  32. 8 7
      review-analysis/review-highlight-extraction/api-config.json
  33. 8 7
      review-analysis/review-keyword-cloud/api-config.json
  34. 8 7
      review-analysis/review-pain-point-extraction/api-config.json
  35. 8 7
      review-analysis/review-sentiment-analysis/api-config.json
  36. 47 0
      scripts/tools/set-voc-token.js
  37. 131 13
      scripts/tools/skill-executor.js
  38. 8 6
      scripts/tools/update-token-config-v2.js
  39. 8 7
      social-media/instagram-search/api-config.json
  40. 8 7
      social-media/instagram-user-info/api-config.json
  41. 8 7
      social-media/instagram-user-posts/api-config.json
  42. 8 7
      social-media/tiktok-hashtag-detail/api-config.json
  43. 8 7
      social-media/tiktok-hashtag-videos/api-config.json
  44. 8 7
      social-media/tiktok-user-posts/api-config.json
  45. 8 7
      social-media/tiktok-user-profile/api-config.json
  46. 8 7
      social-media/tiktok-user-search/api-config.json
  47. 8 7
      social-media/tiktok-video-comments/api-config.json
  48. 8 7
      social-media/tiktok-video-detail/api-config.json
  49. 8 7
      social-media/tiktok-video-search/api-config.json
  50. 8 7
      social-voc/instagram-brand-voc/api-config.json
  51. 8 7
      social-voc/social-trend-analysis/api-config.json
  52. 8 7
      social-voc/tiktok-brand-voc/api-config.json
  53. 8 7
      social-voc/tiktok-category-voc/api-config.json
  54. 8 7
      synthesis/brand-profile/api-config.json
  55. 8 7
      synthesis/category-landscape/api-config.json
  56. 8 7
      synthesis/html-report-generator/api-config.json
  57. 8 7
      synthesis/product-deep-analysis/api-config.json
  58. 8 7
      synthesis/user-persona/api-config.json
  59. 8 7
      synthesis/voc-proposal/api-config.json
  60. 182 62
      video-creation/transcript-to-video/api-config.json
  61. 8 7
      voc/asin-reverse-keywords/api-config.json
  62. 8 7
      voc/asin-sales-volume/api-config.json
  63. 8 7
      voc/category-products/api-config.json
  64. 8 7
      voc/category-tree/api-config.json
  65. 8 7
      voc/keyword-product-ranking/api-config.json
  66. 8 7
      voc/keyword-search-trend/api-config.json
  67. 8 7
      voc/keyword-search/api-config.json
  68. 8 7
      voc/product-detail-query/api-config.json
  69. 8 7
      voc/product-monitor/api-config.json
  70. 8 7
      voc/product-reviews-query/api-config.json
  71. 8 7
      voc/product-search/api-config.json
  72. 8 7
      voc/similar-products/api-config.json
  73. 8 7
      workshop/brand-context-builder/api-config.json

+ 8 - 7
competitor-analysis/competitor-bsr-tracking/api-config.json

@@ -278,16 +278,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -306,9 +304,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
competitor-analysis/competitor-discovery/api-config.json

@@ -305,16 +305,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -333,9 +331,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
competitor-analysis/competitor-pricing-analysis/api-config.json

@@ -262,16 +262,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -290,9 +288,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
competitor-analysis/competitor-product-comparison/api-config.json

@@ -297,16 +297,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -325,9 +323,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-comment-replies/api-config.json

@@ -105,16 +105,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -133,9 +131,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-general-search/api-config.json

@@ -208,16 +208,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -236,9 +234,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-hashtag-search/api-config.json

@@ -166,16 +166,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -194,9 +192,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-user-profile/api-config.json

@@ -86,16 +86,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -114,9 +112,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-user-search/api-config.json

@@ -109,16 +109,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -137,9 +135,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-video-comments/api-config.json

@@ -114,16 +114,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -142,9 +140,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
douyin/douyin-video-detail/api-config.json

@@ -87,16 +87,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -115,9 +113,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-actor-v2/api-config.json

@@ -85,16 +85,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -113,9 +111,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-actor/api-config.json

@@ -75,16 +75,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -103,9 +101,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-clothes-v2/api-config.json

@@ -137,16 +137,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -165,9 +163,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-img-v4-goods/api-config.json

@@ -103,16 +103,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -131,9 +129,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-img-v4-pod/api-config.json

@@ -107,16 +107,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -135,9 +133,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-img-v4/api-config.json

@@ -142,16 +142,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -170,9 +168,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-img2img-v3/api-config.json

@@ -95,16 +95,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -123,9 +121,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-inpaint/api-config.json

@@ -80,16 +80,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -108,9 +106,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-oh-detect/api-config.json

@@ -74,16 +74,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -102,9 +100,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-oh-generate/api-config.json

@@ -104,16 +104,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -132,9 +130,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-oh-identify/api-config.json

@@ -70,16 +70,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -98,9 +96,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-oh-query/api-config.json

@@ -128,16 +128,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -156,9 +154,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-super-resolution/api-config.json

@@ -89,16 +89,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -117,9 +115,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-task-query/api-config.json

@@ -141,16 +141,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -169,9 +167,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-text2img-v3/api-config.json

@@ -95,16 +95,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -123,9 +121,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-text2img-v31/api-config.json

@@ -90,16 +90,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -118,9 +116,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-video-v3-1080p/api-config.json

@@ -114,16 +114,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -142,9 +140,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-video-v3-720p/api-config.json

@@ -145,16 +145,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -173,9 +171,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
jimeng/jimeng-video-v3-pro/api-config.json

@@ -105,16 +105,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -133,9 +131,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
review-analysis/review-batch-collection/api-config.json

@@ -310,16 +310,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -338,9 +336,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
review-analysis/review-highlight-extraction/api-config.json

@@ -230,16 +230,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -258,9 +256,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
review-analysis/review-keyword-cloud/api-config.json

@@ -203,16 +203,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -231,9 +229,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
review-analysis/review-pain-point-extraction/api-config.json

@@ -251,16 +251,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -279,9 +277,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
review-analysis/review-sentiment-analysis/api-config.json

@@ -312,16 +312,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -340,9 +338,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 47 - 0
scripts/tools/set-voc-token.js

@@ -0,0 +1,47 @@
+#!/usr/bin/env node
+const fs = require('fs');
+const os = require('os');
+const path = require('path');
+
+const args = process.argv.slice(2);
+const tokenArg = args.find(arg => !arg.startsWith('--'));
+const token = tokenArg || (args.find(arg => arg.startsWith('--token=')) || '').slice(8);
+
+if (!token) {
+  console.log('用法: node scripts/tools/set-voc-token.js <session-token>');
+  console.log('示例: node scripts/tools/set-voc-token.js r:1234567890abcdef1234567890abcdef');
+  process.exit(1);
+}
+
+if (!/^r:[0-9a-f]{32}$/i.test(token)) {
+  console.error('无效 token:应为 Parse session token,格式示例 r:1234567890abcdef1234567890abcdef');
+  process.exit(1);
+}
+
+const configDir = path.join(os.homedir(), '.openclaw');
+const configPath = path.join(configDir, 'voc-credentials.json');
+
+let config = {};
+if (fs.existsSync(configPath)) {
+  try {
+    const raw = fs.readFileSync(configPath, 'utf-8').trim();
+    config = raw ? JSON.parse(raw) : {};
+  } catch (error) {
+    console.error(`读取现有配置失败: ${error.message}`);
+    process.exit(1);
+  }
+}
+
+config.vocToken = token;
+
+try {
+  fs.mkdirSync(configDir, { recursive: true });
+  fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, 'utf-8');
+} catch (error) {
+  console.error(`写入配置失败: ${error.message}`);
+  process.exit(1);
+}
+
+const masked = `${token.slice(0, 6)}...${token.slice(-4)}`;
+console.log(`已写入 vocToken: ${masked}`);
+console.log(`配置文件: ${configPath}`);

+ 131 - 13
scripts/tools/skill-executor.js

@@ -16,6 +16,7 @@
  */
 
 const fs = require('fs');
+const os = require('os');
 const path = require('path');
 const { exec } = require('child_process');
 
@@ -62,8 +63,84 @@ function matchesErrorConditions(responseData, errorDef) {
 }
 
 // ─── 3. 解析模板变量 ───
-function resolveTemplate(template, vars) {
-  return template.replace(/\{\{(\w+)\}\}/g, (_, key) => vars[key] || '');
+function resolveTemplate(template, vars = {}) {
+  if (typeof template !== 'string') return template;
+  const doubleBraceResolved = template.replace(/\{\{(\w+)\}\}/g, (_, key) => vars[key] ?? '');
+  return doubleBraceResolved.replace(/\{(\w+)\}/g, (_, key) => vars[key] ?? '');
+}
+
+function expandHome(filePath) {
+  if (!filePath || typeof filePath !== 'string') return filePath;
+  if (filePath === '~') return os.homedir();
+  if (filePath.startsWith('~/') || filePath.startsWith('~\\')) {
+    return path.join(os.homedir(), filePath.slice(2));
+  }
+  return filePath;
+}
+
+function resolveTokenFromConfig(tokenConfig) {
+  if (!tokenConfig) return '';
+
+  const resolutionOrder = Array.isArray(tokenConfig.resolutionOrder)
+    ? tokenConfig.resolutionOrder
+    : ['configFile', 'currentToken'];
+
+  for (const source of resolutionOrder) {
+    if (source === 'configFile' && tokenConfig.configFile && tokenConfig.tokenField) {
+      try {
+        const configPath = expandHome(tokenConfig.configFile);
+        if (!fs.existsSync(configPath)) continue;
+        const configData = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
+        const resolved = configData[tokenConfig.tokenField];
+        if (resolved) return String(resolved).trim();
+      } catch (e) {
+        console.warn('[执行器] 读取 token 配置失败:', e.message);
+      }
+    }
+
+    if (source === 'currentToken' && tokenConfig.currentToken) {
+      return String(tokenConfig.currentToken).trim();
+    }
+  }
+
+  return '';
+}
+
+function buildTokenSetupMetadata(tokenConfig) {
+  const onMissing = tokenConfig?.onMissing || {};
+  return {
+    tokenConfigFile: tokenConfig?.configFile || '~/.openclaw/voc-credentials.json',
+    tokenField: tokenConfig?.tokenField || 'vocToken',
+    tokenSetupCommandTemplate: onMissing.tokenSetupCommandTemplate || 'node scripts/tools/set-voc-token.js {sessionToken}',
+    tokenSetupInstructions: onMissing.tokenSetupInstructions || '当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。'
+  };
+}
+
+async function resolvePaymentUrlFromTokenConfig(tokenConfig, userVars) {
+  const paymentConfig = tokenConfig?.paymentUrlResolution;
+  if (!paymentConfig) return '';
+
+  const sessionToken = resolveTokenFromConfig(tokenConfig);
+  if (!sessionToken) return '';
+
+  const resolveVars = { ...userVars, vocToken: sessionToken, token: sessionToken };
+  const headers = {};
+  for (const [key, value] of Object.entries(paymentConfig.userResolveHeaders || {})) {
+    headers[key] = resolveTemplate(value, resolveVars);
+  }
+
+  const resp = await fetch(paymentConfig.userResolveEndpoint, { headers });
+  const data = await resp.json();
+  if (!resp.ok || !data.objectId) {
+    throw new Error(data.error || data.message || '无法解析当前用户');
+  }
+
+  const finalVars = { ...resolveVars, resolvedUserId: data.objectId };
+  const url = new URL(paymentConfig.paymentBaseUrl);
+  for (const [key, value] of Object.entries(paymentConfig.paymentParams || {})) {
+    url.searchParams.set(key, resolveTemplate(String(value), finalVars));
+  }
+  return url.toString();
 }
 
 // ─── 4. 打开充值网址 ───
@@ -148,6 +225,10 @@ async function executeSkillWithBilling(skillDir, inputParams, userVars) {
   console.log(`\n[执行器] Skill: ${config.displayName} (${config.name})`);
   console.log(`[执行器] 端点: ${config.endpoint.method} ${config.endpoint.url}`);
 
+  if (!userVars.apigid && config.tokenConfig?.apigId) {
+    userVars.apigid = config.tokenConfig.apigId;
+  }
+
   // Step A: 先查余额(如有 user + apigid)
   let authRecord = null;
   if (userVars.user && userVars.apigid) {
@@ -210,22 +291,41 @@ async function handleInsufficientBalance(config, authRecord, userVars) {
   const oldCount = authRecord ? (authRecord.count || 0) : 0;
   const authId = authRecord ? authRecord.objectId : null;
 
-  if (handler.action === 'showPaymentQR') {
-    // 打开充值网址
-    openPaymentUrl(handler.qrCodeUrl, userVars);
+  if (handler.action === 'showPaymentQR' || handler.action === 'resolveUserThenShowPayment') {
+    let paymentUrl = '';
+
+    if (handler.action === 'resolveUserThenShowPayment') {
+      try {
+        paymentUrl = await resolvePaymentUrlFromTokenConfig(tc, { ...userVars, apigid: userVars.apigid || tc.apigId });
+      } catch (e) {
+        console.warn('[执行器] 解析专属充值链接失败:', e.message);
+      }
+    }
+
+    if (!paymentUrl && handler.qrCodeUrl) {
+      paymentUrl = resolveTemplate(handler.qrCodeUrl, { ...userVars, apigid: userVars.apigid || tc.apigId });
+    }
+
+    if (!paymentUrl && tc.onMissing?.qrCodeUrl) {
+      paymentUrl = resolveTemplate(tc.onMissing.qrCodeUrl, { ...userVars, apigid: userVars.apigid || tc.apigId });
+    }
+
+    if (!paymentUrl) {
+      return { success: false, error: 'payment_url_unavailable' };
+    }
+
+    openPaymentUrl(paymentUrl, {});
     console.log(`[执行器] title: ${handler.title}`);
     console.log(`[执行器] message: ${handler.message}`);
 
     if (!authId) {
       console.log('[执行器] 无 authId,无法轮询余额。请手动充值后重试。');
-      return { success: false, error: 'no_auth_record', paymentUrl: resolveTemplate(handler.qrCodeUrl, userVars) };
+      return { success: false, error: 'no_auth_record', paymentUrl };
     }
 
-    // 轮询等待充值
     const updated = await pollBalance(authId, oldCount, handler);
 
     if (updated) {
-      // 充值成功 → 重试 Skill
       if (handler.onPaymentSuccess === 'retrySkillWithNewToken') {
         console.log('[执行器] 🔄 充值成功,准备重试 Skill...');
         return { success: true, recharged: true, newBalance: updated.count, action: 'retrySkill' };
@@ -248,13 +348,32 @@ async function handleUnauthorized(config, userVars) {
   }
 
   const handler = tc.onMissing;
-  if (handler.action === 'showPaymentQR') {
-    openPaymentUrl(handler.qrCodeUrl, userVars);
+  let paymentUrl = '';
+
+  if (handler.action === 'resolveUserThenShowPayment') {
+    try {
+      paymentUrl = await resolvePaymentUrlFromTokenConfig(tc, { ...userVars, apigid: userVars.apigid || tc.apigId });
+    } catch (e) {
+      console.warn('[执行器] 解析专属充值链接失败:', e.message);
+    }
+  }
+
+  if (!paymentUrl && handler.qrCodeUrl) {
+    paymentUrl = resolveTemplate(handler.qrCodeUrl, { ...userVars, apigid: userVars.apigid || tc.apigId });
+  }
+
+  if (paymentUrl) {
+    openPaymentUrl(paymentUrl, {});
     console.log(`[执行器] title: ${handler.title}`);
     console.log(`[执行器] message: ${handler.message}`);
   }
 
-  return { success: false, error: 'unauthorized', paymentUrl: resolveTemplate(handler.qrCodeUrl, userVars) };
+  return {
+    success: false,
+    error: 'unauthorized',
+    paymentUrl,
+    ...buildTokenSetupMetadata(tc)
+  };
 }
 
 // ─── CLI 入口 ───
@@ -280,8 +399,7 @@ async function main() {
   console.log('╚══════════════════════════════════════════════════════╝');
 
   const result = await executeSkillWithBilling(skillDir, {
-    prompt: '测试',
-    token: 'Bearer r:f0333969e312a40e4703e8fe4ed1c600'
+    prompt: '测试'
   }, userVars);
 
   console.log('\n[结果]', JSON.stringify(result, null, 2));

+ 8 - 6
scripts/tools/update-token-config-v2.js

@@ -25,13 +25,12 @@ const NEW_TOKEN_CONFIG = {
   type: "bearer",
   configFile: "~/.openclaw/voc-credentials.json",
   tokenField: "vocToken",
-  currentToken: "r:858b3ee92314d5447d1fc3cdc10462d7",
-  resolutionOrder: ["configFile", "currentToken"],
+  resolutionOrder: ["configFile"],
   apigId: "Vo3ROWEvDy",
   paymentUrlResolution: {
-    description: "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+    description: "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
     steps: [
-      "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+      "1. 从 voc-credentials.json 获取当前 session token",
       "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
       "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "4. 将该URL展示给用户,引导扫码支付"
@@ -50,9 +49,12 @@ const NEW_TOKEN_CONFIG = {
     balanceCheckEndpoint: "https://server.fmode.cn/api/apig/getApig"
   },
   onMissing: {
-    action: "resolveUserThenShowPayment",
+    action: "showPaymentQR",
+    qrCodeUrl: "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
     title: "扫码开通 VOC-AI 数据服务",
-    message: "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+    message: "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+    tokenSetupCommandTemplate: "node scripts/tools/set-voc-token.js {sessionToken}",
+    tokenSetupInstructions: "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
   },
   onBalanceInsufficient: {
     action: "resolveUserThenShowPayment",

+ 8 - 7
social-media/instagram-search/api-config.json

@@ -143,16 +143,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -171,9 +169,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/instagram-user-info/api-config.json

@@ -143,16 +143,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -171,9 +169,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/instagram-user-posts/api-config.json

@@ -163,16 +163,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -191,9 +189,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-hashtag-detail/api-config.json

@@ -105,16 +105,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -133,9 +131,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-hashtag-videos/api-config.json

@@ -149,16 +149,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -177,9 +175,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-user-posts/api-config.json

@@ -146,16 +146,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -174,9 +172,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-user-profile/api-config.json

@@ -152,16 +152,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -180,9 +178,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-user-search/api-config.json

@@ -142,16 +142,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -170,9 +168,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-video-comments/api-config.json

@@ -151,16 +151,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -179,9 +177,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-video-detail/api-config.json

@@ -145,16 +145,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -173,9 +171,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-media/tiktok-video-search/api-config.json

@@ -196,16 +196,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -224,9 +222,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-voc/instagram-brand-voc/api-config.json

@@ -154,16 +154,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -182,9 +180,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-voc/social-trend-analysis/api-config.json

@@ -271,16 +271,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -299,9 +297,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-voc/tiktok-brand-voc/api-config.json

@@ -192,16 +192,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -220,9 +218,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
social-voc/tiktok-category-voc/api-config.json

@@ -214,16 +214,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -242,9 +240,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
synthesis/brand-profile/api-config.json

@@ -363,16 +363,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -391,9 +389,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
synthesis/category-landscape/api-config.json

@@ -325,16 +325,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -353,9 +351,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
synthesis/html-report-generator/api-config.json

@@ -206,16 +206,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -234,9 +232,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
synthesis/product-deep-analysis/api-config.json

@@ -645,16 +645,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -673,9 +671,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
synthesis/user-persona/api-config.json

@@ -281,16 +281,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -309,9 +307,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
synthesis/voc-proposal/api-config.json

@@ -339,16 +339,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -367,9 +365,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 182 - 62
video-creation/transcript-to-video/api-config.json

@@ -5,10 +5,11 @@
   "category": "video-creation",
   "version": "1.0.0",
   "type": "orchestration",
-
   "parameters": {
     "type": "object",
-    "required": ["transcript"],
+    "required": [
+      "transcript"
+    ],
     "properties": {
       "transcript": {
         "type": "string",
@@ -21,31 +22,47 @@
       },
       "videoModel": {
         "type": "string",
-        "enum": ["720p", "1080p", "pro"],
+        "enum": [
+          "720p",
+          "1080p",
+          "pro"
+        ],
         "description": "瑙嗛鐢熸垚妯″瀷璐ㄩ噺绛夌骇",
         "default": "720p"
       },
       "videoMethod": {
         "type": "string",
-        "enum": ["text2video", "img2video"],
+        "enum": [
+          "text2video",
+          "img2video"
+        ],
         "description": "text2video=纯文生视频(更快),img2video=先生成图片再图生视频(效果更可控)",
         "default": "text2video"
       },
       "aspectRatio": {
         "type": "string",
-        "enum": ["16:9", "9:16", "1:1", "4:3", "3:4", "21:9"],
+        "enum": [
+          "16:9",
+          "9:16",
+          "1:1",
+          "4:3",
+          "3:4",
+          "21:9"
+        ],
         "description": "瑙嗛鐢婚潰姣斾緥",
         "default": "16:9"
       },
       "frames": {
         "type": "integer",
-        "enum": [121, 241],
+        "enum": [
+          121,
+          241
+        ],
         "description": "视频帧数,121=5秒,241=10秒",
         "default": 121
       }
     }
   },
-
   "pipeline": [
     {
       "step": 1,
@@ -122,7 +139,9 @@
               "id": "2b-2",
               "name": "杞鍥剧墖缁撴灉",
               "skill": "jimeng/jimeng-task-query",
-              "dependsOn": ["2b-1"],
+              "dependsOn": [
+                "2b-1"
+              ],
               "input": {
                 "workId": "${imageWorkIds[segment.id]}",
                 "routerName": "getImgV4"
@@ -137,7 +156,9 @@
               "id": "2b-3",
               "name": "鑾峰彇鍥剧墖URL",
               "skill": "jimeng/jimeng-work-result",
-              "dependsOn": ["2b-2"],
+              "dependsOn": [
+                "2b-2"
+              ],
               "input": {
                 "workId": "${imageWorkIds[segment.id]}"
               },
@@ -148,13 +169,17 @@
               "id": "2b-4",
               "name": "鍥剧敓瑙嗛锛堥甯э級",
               "skill": "jimeng/jimeng-video-v3-720p",
-              "dependsOn": ["2b-3"],
+              "dependsOn": [
+                "2b-3"
+              ],
               "input": {
                 "prompt": "${segment.prompt}",
                 "method": "2",
                 "frames": "${frames}",
                 "config": {
-                  "image_urls": ["${imageUrls[segment.id]}"]
+                  "image_urls": [
+                    "${imageUrls[segment.id]}"
+                  ]
                 }
               },
               "output": "workIds[${segment.id}]"
@@ -193,7 +218,9 @@
           "id": "3b",
           "name": "鑾峰彇瑙嗛URL",
           "skill": "jimeng/jimeng-work-result",
-          "dependsOn": ["3a"],
+          "dependsOn": [
+            "3a"
+          ],
           "input": {
             "workId": "${workId}"
           },
@@ -228,7 +255,10 @@
         "material_list": "${videoResults.map(r => ({ type: 'video', value: r.videoUrl }))}",
         "tags": "${extractKeywords(transcript)}",
         "proportion": "${aspectRatio === '9:16' ? '9:16' : aspectRatio === '1:1' ? '1:1' : '9:16'}",
-        "video_duration": { "min": 15, "max": 30 },
+        "video_duration": {
+          "min": 15,
+          "max": 30
+        },
         "pre_id": "${Date.now().toString()}",
         "ai_voice": 1,
         "ai_bgm": 1,
@@ -238,7 +268,6 @@
       "downstream": "video-creation/quickly-video-query"
     }
   ],
-
   "response": {
     "type": "object",
     "properties": {
@@ -248,13 +277,29 @@
         "items": {
           "type": "object",
           "properties": {
-            "id": { "type": "string" },
-            "act": { "type": "string" },
-            "narration": { "type": "string" },
-            "prompt": { "type": "string" },
-            "duration": { "type": "string" },
-            "videoUrl": { "type": "string", "description": "鐢熸垚鐨勮棰慤RL锛堟案涔呮湁鏁堬級" },
-            "imageUrl": { "type": "string", "description": "生成的首帧图片 URL(img2video 模式)" }
+            "id": {
+              "type": "string"
+            },
+            "act": {
+              "type": "string"
+            },
+            "narration": {
+              "type": "string"
+            },
+            "prompt": {
+              "type": "string"
+            },
+            "duration": {
+              "type": "string"
+            },
+            "videoUrl": {
+              "type": "string",
+              "description": "鐢熸垚鐨勮棰慤RL锛堟案涔呮湁鏁堬級"
+            },
+            "imageUrl": {
+              "type": "string",
+              "description": "生成的首帧图片 URL(img2video 模式)"
+            }
           }
         }
       },
@@ -268,20 +313,38 @@
         "items": {
           "type": "object",
           "properties": {
-            "id": { "type": "string" },
-            "videoUrl": { "type": "string" },
-            "duration": { "type": "number" },
-            "prompt": { "type": "string" }
+            "id": {
+              "type": "string"
+            },
+            "videoUrl": {
+              "type": "string"
+            },
+            "duration": {
+              "type": "number"
+            },
+            "prompt": {
+              "type": "string"
+            }
           }
         }
       },
-      "totalSegments": { "type": "integer" },
-      "successCount": { "type": "integer" },
-      "failedCount": { "type": "integer" },
-      "failedIds": { "type": "array", "items": { "type": "string" } }
+      "totalSegments": {
+        "type": "integer"
+      },
+      "successCount": {
+        "type": "integer"
+      },
+      "failedCount": {
+        "type": "integer"
+      },
+      "failedIds": {
+        "type": "array",
+        "items": {
+          "type": "string"
+        }
+      }
     }
   },
-
   "relatedSkills": [
     "jimeng/jimeng-video-v3-720p",
     "jimeng/jimeng-video-v3-1080p",
@@ -292,7 +355,6 @@
     "video-creation/quickly-video-create",
     "video-creation/quickly-video-query"
   ],
-
   "pricing": {
     "text2video_720p_5s": {
       "perSegment": 1.4,
@@ -314,14 +376,12 @@
       "img2video": "约115元"
     }
   },
-
   "limitations": {
     "videoDuration": "仅支持 5 秒(121 帧)或 10 秒(241 帧),无法精确匹配 SRT 时间戳",
     "noTTS": "鏃燭TS閰嶉煶鑳藉姏锛岄渶鐢ㄦ埛鍦ㄥ壀鏄犱腑閰嶉煶",
     "noAutoStitch": "暂无自动拼接长视频能力,quickly 最长 30 秒",
     "parallelLimit": "即梦 API 建议并行数不超过 5,避免触发频率限制"
   },
-
   "futureExtensions": [
     {
       "name": "tts-voiceover",
@@ -339,55 +399,115 @@
       "status": "planned"
     }
   ],
-
   "tokenConfig": {
-    "type": "body",
-    "tokenField": "token",
-    "format": "Bearer r:{{jimengToken}}",
+    "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
-    "currentToken": "Bearer r:f0333969e312a40e4703e8fe4ed1c600",
-    "resolutionOrder": ["configFile", "currentToken"],
+    "tokenField": "vocToken",
+    "resolutionOrder": [
+      "configFile"
+    ],
+    "apigId": "Vo3ROWEvDy",
+    "paymentUrlResolution": {
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
+      "steps": [
+        "1. 从 voc-credentials.json 获取当前 session token",
+        "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
+        "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
+        "4. 将该URL展示给用户,引导扫码支付"
+      ],
+      "userResolveEndpoint": "https://server.fmode.cn/parse/users/me",
+      "userResolveHeaders": {
+        "X-Parse-Application-Id": "ncloudmaster",
+        "X-Parse-Session-Token": "{vocToken}"
+      },
+      "paymentBaseUrl": "https://app.fmode.cn/dev/apig-pay/",
+      "paymentParams": {
+        "user": "{resolvedUserId}",
+        "apigid": "Vo3ROWEvDy",
+        "fun_id": "HOkkX72PMF"
+      },
+      "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
+    },
     "onMissing": {
       "action": "showPaymentQR",
-      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?authid=T0iOotHcDX&fun_id=HOkkX72PMF",
-      "paymentCheckEndpoint": "https://server.fmode.cn/api/apig/getApig",
-      "pollingIntervalMs": 3000,
-      "pollingTimeoutMs": 300000,
-      "onPaymentSuccess": "retrySkillWithNewToken",
-      "title": "鎵爜寮€閫氬嵆姊I瑙嗛鐢熸垚鏈嶅姟",
-      "message": "请扫描下方二维码完成支付,支付成功后将自动获取新 Token 并继续执行。"
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
+      "title": "扫码开通 VOC-AI 数据服务",
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
-      "action": "showPaymentQR",
-      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?authid=T0iOotHcDX&fun_id=HOkkX72PMF",
-      "paymentCheckEndpoint": "https://server.fmode.cn/api/apig/getApig",
-      "pollingIntervalMs": 3000,
-      "pollingTimeoutMs": 300000,
-      "onPaymentSuccess": "retrySkillWithNewToken",
-      "title": "即梦 AI Token 余额不足,请扫码充值",
-      "message": "当前 Token 余额不足,请扫描二维码充值,支付完成后将自动继续执行。"
+      "action": "resolveUserThenShowPayment",
+      "title": "VOC-AI Token 余额不足,请扫码充值",
+      "message": "当前 Token 余额不足,我将为你生成专属充值链接,扫码支付后即可继续使用。"
     }
   },
-
   "errorHandling": {
     "balanceInsufficient": {
       "conditions": [
-        { "responseField": "code", "operator": "in", "value": [-2, -3, -10, 402, 429] },
-        { "responseField": "msg", "operator": "contains", "value": ["浣欓涓嶈冻", "insufficient", "balance", "quota"] }
+        {
+          "responseField": "code",
+          "operator": "in",
+          "value": [
+            -2,
+            -3,
+            -10,
+            402,
+            429
+          ]
+        },
+        {
+          "responseField": "msg",
+          "operator": "contains",
+          "value": [
+            "余额不足",
+            "insufficient",
+            "balance",
+            "quota"
+          ]
+        },
+        {
+          "responseField": "message",
+          "operator": "contains",
+          "value": [
+            "余额不足",
+            "insufficient",
+            "balance"
+          ]
+        }
       ],
       "matchMode": "any",
       "trigger": "tokenConfig.onBalanceInsufficient"
     },
-    "segmentFailed": {
-      "action": "markFailed",
-      "description": "鍗曚釜鍒嗛暅娈电敓鎴愬け璐ユ椂鏍囪涓篺ailed锛屼笉闃诲鍏朵粬娈碉紝鏈€鍚庢眹鎬诲け璐ュ垪琛ㄤ緵閲嶈瘯"
+    "unauthorized": {
+      "conditions": [
+        {
+          "responseField": "code",
+          "operator": "in",
+          "value": [
+            401,
+            403
+          ]
+        },
+        {
+          "responseField": "msg",
+          "operator": "contains",
+          "value": [
+            "unauthorized",
+            "token",
+            "invalid",
+            "auth"
+          ]
+        }
+      ],
+      "matchMode": "any",
+      "trigger": "tokenConfig.onMissing"
     }
   },
-
   "timeout": 600000,
   "retry": {
     "maxAttempts": 2,
     "delay": 3000,
     "backoffMultiplier": 2
   }
-}
+}

+ 8 - 7
voc/asin-reverse-keywords/api-config.json

@@ -97,16 +97,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -125,9 +123,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/asin-sales-volume/api-config.json

@@ -99,16 +99,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -127,9 +125,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/category-products/api-config.json

@@ -111,16 +111,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -139,9 +137,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/category-tree/api-config.json

@@ -83,16 +83,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -111,9 +109,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/keyword-product-ranking/api-config.json

@@ -108,16 +108,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -136,9 +134,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/keyword-search-trend/api-config.json

@@ -97,16 +97,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -125,9 +123,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/keyword-search/api-config.json

@@ -104,16 +104,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -132,9 +130,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/product-detail-query/api-config.json

@@ -221,16 +221,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -249,9 +247,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/product-monitor/api-config.json

@@ -96,16 +96,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -124,9 +122,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/product-reviews-query/api-config.json

@@ -216,16 +216,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -244,9 +242,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/product-search/api-config.json

@@ -137,16 +137,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -165,9 +163,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
voc/similar-products/api-config.json

@@ -88,16 +88,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -116,9 +114,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",

+ 8 - 7
workshop/brand-context-builder/api-config.json

@@ -183,16 +183,14 @@
     "type": "bearer",
     "configFile": "~/.openclaw/voc-credentials.json",
     "tokenField": "vocToken",
-    "currentToken": "r:858b3ee92314d5447d1fc3cdc10462d7",
     "resolutionOrder": [
-      "configFile",
-      "currentToken"
+      "configFile"
     ],
     "apigId": "Vo3ROWEvDy",
     "paymentUrlResolution": {
-      "description": "动态构建充值URL:通过当前token查出用户objectId,拼接到充值页面",
+      "description": "动态构建充值URL:在已存在 session token 时查出用户 objectId,拼接到专属充值页面",
       "steps": [
-        "1. 从 voc-credentials.json 或 currentToken 获取当前 session token",
+        "1. 从 voc-credentials.json 获取当前 session token",
         "2. 调用 GET https://server.fmode.cn/parse/users/me (Header: X-Parse-Application-Id: ncloudmaster, X-Parse-Session-Token: {token})获取用户 objectId",
         "3. 拼接充值URL: https://app.fmode.cn/dev/apig-pay/?user={objectId}&apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
         "4. 将该URL展示给用户,引导扫码支付"
@@ -211,9 +209,12 @@
       "balanceCheckEndpoint": "https://server.fmode.cn/api/apig/getApig"
     },
     "onMissing": {
-      "action": "resolveUserThenShowPayment",
+      "action": "showPaymentQR",
+      "qrCodeUrl": "https://app.fmode.cn/dev/apig-pay/?apigid=Vo3ROWEvDy&fun_id=HOkkX72PMF",
       "title": "扫码开通 VOC-AI 数据服务",
-      "message": "此 Skill 需要有效的 API Token。请按以下步骤操作:\n1. 如果你已有 Token,请告诉我,我会保存到 ~/.openclaw/voc-credentials.json\n2. 如果没有 Token,我会引导你扫码充值开通"
+      "message": "此 Skill 需要有效的 API Token。请先打开充值页面完成登录和充值;当用户提供 session token 后,请由 OpenClaw 运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json 的 vocToken 字段,再重试当前 Skill。",
+      "tokenSetupCommandTemplate": "node scripts/tools/set-voc-token.js {sessionToken}",
+      "tokenSetupInstructions": "当用户完成登录和充值后,如果用户把 session token 发给你,请直接运行 node scripts/tools/set-voc-token.js <session-token> 写入 ~/.openclaw/voc-credentials.json,然后重试当前 Skill。"
     },
     "onBalanceInsufficient": {
       "action": "resolveUserThenShowPayment",