siluzan-tso-cli 1.0.0-beta.25 → 1.0.0-beta.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.js +38 -42
- package/dist/skill/SKILL.md +0 -1
- package/dist/skill/_meta.json +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ siluzan-tso init -d /path/to/skills # 写入自定义目录
|
|
|
20
20
|
siluzan-tso init --force # 强制覆盖已存在文件
|
|
21
21
|
```
|
|
22
22
|
|
|
23
|
-
> **注意**:当前为测试版(1.0.0-beta.
|
|
23
|
+
> **注意**:当前为测试版(1.0.0-beta.27),供内部测试使用。正式发布后安装命令将改为 `npm install -g siluzan-tso-cli`。
|
|
24
24
|
|
|
25
25
|
| 助手 | 建议 `--ai` |
|
|
26
26
|
|------|-------------|
|
package/dist/index.js
CHANGED
|
@@ -594,7 +594,7 @@ function sleep(ms) {
|
|
|
594
594
|
function getCurrentVersion(importMetaUrl) {
|
|
595
595
|
try {
|
|
596
596
|
const __dirname2 = path2.dirname(fileURLToPath(importMetaUrl));
|
|
597
|
-
const pkgPath = path2.join(__dirname2, "..", "
|
|
597
|
+
const pkgPath = path2.join(__dirname2, "..", "package.json");
|
|
598
598
|
const pkg = JSON.parse(fs2.readFileSync(pkgPath, "utf8"));
|
|
599
599
|
return pkg.version ?? "0.0.0";
|
|
600
600
|
} catch {
|
|
@@ -6809,23 +6809,19 @@ async function runOpenAccountYandex(opts) {
|
|
|
6809
6809
|
opts.advertiserId
|
|
6810
6810
|
);
|
|
6811
6811
|
const body = {
|
|
6812
|
-
|
|
6813
|
-
|
|
6814
|
-
|
|
6815
|
-
|
|
6816
|
-
|
|
6817
|
-
|
|
6818
|
-
Notification: {
|
|
6819
|
-
Email: opts.email
|
|
6812
|
+
mediaAccountGroupId: magKey,
|
|
6813
|
+
agencyClientInfo: {
|
|
6814
|
+
name: opts.company,
|
|
6815
|
+
currency: "USD",
|
|
6816
|
+
notification: {
|
|
6817
|
+
email: opts.email
|
|
6820
6818
|
},
|
|
6821
|
-
|
|
6822
|
-
|
|
6823
|
-
|
|
6819
|
+
tinInfo: {
|
|
6820
|
+
tinType: "FOREIGN_LEGAL",
|
|
6821
|
+
tin: opts.tin
|
|
6824
6822
|
},
|
|
6825
|
-
|
|
6826
|
-
|
|
6827
|
-
TaxpayerNumber: opts.taxpayerNumber ?? "",
|
|
6828
|
-
WebUrl: opts.webUrl ?? ""
|
|
6823
|
+
accountInfo: {
|
|
6824
|
+
taxpayerNumber: opts.tin
|
|
6829
6825
|
}
|
|
6830
6826
|
}
|
|
6831
6827
|
};
|
|
@@ -6872,7 +6868,7 @@ async function uploadAttachment(filePath, apiBaseUrl, config, verbose) {
|
|
|
6872
6868
|
if (!data.id) {
|
|
6873
6869
|
throw new Error("\u4E0A\u4F20\u6587\u4EF6\u5931\u8D25\uFF1A\u54CD\u5E94\u4E2D\u672A\u5305\u542B\u6587\u4EF6 ID");
|
|
6874
6870
|
}
|
|
6875
|
-
return { id: data.id, fileName };
|
|
6871
|
+
return { id: data.id, fileName, storageProvider: data.storageProvider ?? "StorageAccount" };
|
|
6876
6872
|
}
|
|
6877
6873
|
function guessContentType(fileName) {
|
|
6878
6874
|
const ext = path9.extname(fileName).toLowerCase();
|
|
@@ -6897,29 +6893,31 @@ async function runOpenAccountBing(opts) {
|
|
|
6897
6893
|
console.log(" \u6B63\u5728\u4E0A\u4F20\u8425\u4E1A\u6267\u7167...");
|
|
6898
6894
|
let fileId;
|
|
6899
6895
|
let fileName;
|
|
6896
|
+
let storageProvider;
|
|
6900
6897
|
try {
|
|
6901
6898
|
const uploaded = await uploadAttachment(opts.licenseFile, config.apiBaseUrl, config, opts.verbose);
|
|
6902
6899
|
fileId = uploaded.id;
|
|
6903
6900
|
fileName = uploaded.fileName;
|
|
6901
|
+
storageProvider = uploaded.storageProvider;
|
|
6904
6902
|
} catch (err) {
|
|
6905
6903
|
console.error(`
|
|
6906
6904
|
\u274C \u8425\u4E1A\u6267\u7167\u4E0A\u4F20\u5931\u8D25\uFF1A${err instanceof Error ? err.message : String(err)}
|
|
6907
6905
|
`);
|
|
6908
6906
|
process.exit(1);
|
|
6909
6907
|
}
|
|
6910
|
-
console.log(` \u8425\u4E1A\u6267\u7167\u4E0A\u4F20\u6210\u529F\
|
|
6908
|
+
console.log(` \u8425\u4E1A\u6267\u7167\u4E0A\u4F20\u6210\u529F\uFF0CfileId: ${fileId}`);
|
|
6911
6909
|
const magKey = await resolveGenericMagKey(
|
|
6912
6910
|
config,
|
|
6913
6911
|
opts.advertiserName,
|
|
6914
|
-
{
|
|
6912
|
+
{ imageId: fileId, storageProvider },
|
|
6915
6913
|
opts.verbose,
|
|
6916
6914
|
opts.advertiserId
|
|
6917
6915
|
);
|
|
6918
6916
|
const accountCount = Math.min(Math.max(opts.accountCount ?? 1, 1), 6);
|
|
6919
6917
|
const body = {
|
|
6920
|
-
|
|
6921
|
-
|
|
6922
|
-
|
|
6918
|
+
mediaAccountGroupId: magKey,
|
|
6919
|
+
accountCount,
|
|
6920
|
+
bingCustomerInfo: {
|
|
6923
6921
|
name: opts.advertiserName,
|
|
6924
6922
|
province: opts.province,
|
|
6925
6923
|
tradeId: opts.tradeId,
|
|
@@ -6928,12 +6926,14 @@ async function runOpenAccountBing(opts) {
|
|
|
6928
6926
|
city: opts.city,
|
|
6929
6927
|
address: opts.address,
|
|
6930
6928
|
promotionLink: opts.promotionLink,
|
|
6931
|
-
directAgent
|
|
6932
|
-
|
|
6933
|
-
|
|
6929
|
+
// directAgent 对应前端 pattern 字段:Direct(直接)或 Agency(代理)
|
|
6930
|
+
directAgent: opts.pattern,
|
|
6931
|
+
fileId,
|
|
6932
|
+
fileName
|
|
6934
6933
|
},
|
|
6935
|
-
|
|
6936
|
-
nameRemarkList
|
|
6934
|
+
bingV2AccountInfo: {
|
|
6935
|
+
// 开户名称,对应前端表单 nameRemarkList 字段
|
|
6936
|
+
nameRemarkList: opts.nameRemarkList,
|
|
6937
6937
|
promotionLink: opts.promotionLink,
|
|
6938
6938
|
address: opts.address,
|
|
6939
6939
|
city: opts.city,
|
|
@@ -6942,10 +6942,11 @@ async function runOpenAccountBing(opts) {
|
|
|
6942
6942
|
province: opts.province,
|
|
6943
6943
|
tradeId: opts.tradeId,
|
|
6944
6944
|
nameShort: opts.nameShort,
|
|
6945
|
-
|
|
6946
|
-
|
|
6947
|
-
|
|
6948
|
-
|
|
6945
|
+
fileId,
|
|
6946
|
+
fileName,
|
|
6947
|
+
// 经理账号(可选),不绑定时传空字符串
|
|
6948
|
+
advertiserCid: opts.advertiserCid ?? "",
|
|
6949
|
+
advertiserName: opts.advertiserName2 ?? ""
|
|
6949
6950
|
}
|
|
6950
6951
|
};
|
|
6951
6952
|
try {
|
|
@@ -8895,35 +8896,31 @@ var openAccountCmd = program.command("open-account").description("\u5F00\u6237\u
|
|
|
8895
8896
|
openAccountCmd.command("list-groups").description("\u67E5\u8BE2\u5E7F\u544A\u4E3B\u7EC4\u5217\u8868\uFF08\u83B7\u53D6\u5F00\u6237\u6240\u9700\u7684 --advertiser-id\uFF09").option("-t, --token <token>", "Auth Token").option("--json", "JSON \u683C\u5F0F\u8F93\u51FA", false).option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
|
|
8896
8897
|
await runListAdvertiserGroups({ token: opts.token, json: opts.json, verbose: opts.verbose });
|
|
8897
8898
|
});
|
|
8898
|
-
openAccountCmd.command("yandex").description("\u63D0\u4EA4 Yandex \u5F00\u6237\u7533\u8BF7\uFF08\u65E0\u9700\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u884C\u4E3A\u4E00\u81F4\uFF09").requiredOption("--
|
|
8899
|
+
openAccountCmd.command("yandex").description("\u63D0\u4EA4 Yandex \u5F00\u6237\u7533\u8BF7\uFF08\u65E0\u9700\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u884C\u4E3A\u4E00\u81F4\uFF09").requiredOption("--email <email>", "\u8054\u7CFB\u90AE\u7BB1").requiredOption("--tin <tin>", "\u7EB3\u7A0E\u4EBA\u8BC6\u522B\u53F7\uFF08TIN / INN\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 magKey\uFF08\u4E00\u822C\u65E0\u9700\u586B\u5199\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
|
|
8899
8900
|
await runOpenAccountYandex({
|
|
8900
8901
|
token: opts.token,
|
|
8901
8902
|
company: opts.company,
|
|
8902
8903
|
advertiserId: opts.advertiserId,
|
|
8903
|
-
login: opts.login,
|
|
8904
|
-
firstName: opts.firstName,
|
|
8905
|
-
lastName: opts.lastName,
|
|
8906
8904
|
email: opts.email,
|
|
8907
8905
|
tin: opts.tin,
|
|
8908
|
-
phone: opts.phone,
|
|
8909
|
-
taxpayerNumber: opts.taxpayerNumber,
|
|
8910
|
-
webUrl: opts.webUrl,
|
|
8911
8906
|
verbose: opts.verbose
|
|
8912
8907
|
});
|
|
8913
8908
|
});
|
|
8914
|
-
openAccountCmd.command("bing").description("\u63D0\u4EA4 Bing/BingV2 \u5F00\u6237\u7533\u8BF7\uFF08\u9700\u4E0A\u4F20\u8425\u4E1A\u6267\u7167\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--advertiser-name <name>", "\
|
|
8909
|
+
openAccountCmd.command("bing").description("\u63D0\u4EA4 Bing/BingV2 \u5F00\u6237\u7533\u8BF7\uFF08\u9700\u4E0A\u4F20\u8425\u4E1A\u6267\u7167\u56FE\u7247\uFF0C\u6309\u516C\u53F8\u540D\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--pattern <Direct|Agency>", "\u76F4\u63A5/\u4EE3\u7406\uFF1ADirect\uFF08\u76F4\u63A5\uFF09\u6216 Agency\uFF08\u4EE3\u7406\uFF09").requiredOption("--advertiser-name <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u5E7F\u544A\u4E3B\u5168\u79F0\uFF0C\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF09").requiredOption("--name-short <short>", "\u516C\u53F8\u7B80\u79F0").requiredOption("--name-remark-list <name>", "\u5F00\u6237\u540D\u79F0\uFF08\u8D26\u6237\u663E\u793A\u540D\uFF09").requiredOption("--province <province>", "\u516C\u53F8\u6240\u5728\u7701\u4EFD").requiredOption("--city <city>", "\u516C\u53F8\u6240\u5728\u57CE\u5E02").requiredOption("--address <address>", "\u516C\u53F8\u8BE6\u7EC6\u5730\u5740").requiredOption("--postcode <code>", "\u516C\u53F8\u6240\u5728\u5730\u90AE\u7F16").requiredOption("--trade-id <name>", "\u884C\u4E1A\uFF08\u6765\u81EA open-account bing-industries \u7684 name \u5B57\u6BB5\uFF09").requiredOption("--promotion-link <url>", "\u5F00\u6237\u7F51\u5740\uFF08\u63A8\u5E7F\u94FE\u63A5\uFF09").requiredOption("--license-file <path>", "\u8425\u4E1A\u6267\u7167\u56FE\u7247\u672C\u5730\u8DEF\u5F84\uFF08JPG/PNG/PDF\uFF09").option("--account-count <n>", "\u5F00\u6237\u6570\u91CF\uFF081~6\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("--advertiser-cid <cid>", "\u7ECF\u7406\u8D26\u53F7 ID\uFF08\u53EF\u9009\uFF09").option("--advertiser-name2 <name>", "\u7ECF\u7406\u8D26\u53F7\u540D\u79F0\uFF08\u53EF\u9009\uFF0C\u4E0E --advertiser-cid \u914D\u5BF9\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 magKey\uFF08\u4E00\u822C\u65E0\u9700\u586B\u5199\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
|
|
8915
8910
|
await runOpenAccountBing({
|
|
8916
8911
|
token: opts.token,
|
|
8917
8912
|
advertiserId: opts.advertiserId,
|
|
8913
|
+
pattern: opts.pattern,
|
|
8918
8914
|
advertiserName: opts.advertiserName,
|
|
8919
8915
|
nameShort: opts.nameShort,
|
|
8916
|
+
nameRemarkList: opts.nameRemarkList,
|
|
8920
8917
|
province: opts.province,
|
|
8921
8918
|
city: opts.city,
|
|
8922
8919
|
address: opts.address,
|
|
8920
|
+
postcode: opts.postcode,
|
|
8923
8921
|
promotionLink: opts.promotionLink,
|
|
8924
8922
|
tradeId: opts.tradeId,
|
|
8925
8923
|
licenseFile: opts.licenseFile,
|
|
8926
|
-
postcode: opts.postcode,
|
|
8927
8924
|
advertiserCid: opts.advertiserCid,
|
|
8928
8925
|
advertiserName2: opts.advertiserName2,
|
|
8929
8926
|
accountCount: opts.accountCount,
|
|
@@ -8953,7 +8950,7 @@ openAccountCmd.command("google-timezones").description("\u5217\u51FA Google \u5F
|
|
|
8953
8950
|
openAccountCmd.command("google-wizard").description("\u4EA4\u4E92\u5F0F Google \u5F00\u6237\uFF08\u5BF9\u9F50\u7F51\u9875\u4E94\u6B65\u8BF4\u660E + \u4E24\u6B65\u8868\u5355\uFF1B\u9700\u7EC8\u7AEF TTY\uFF09").option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
|
|
8954
8951
|
await runOpenAccountGoogleWizard({ token: opts.token, verbose: opts.verbose });
|
|
8955
8952
|
});
|
|
8956
|
-
openAccountCmd.command("google").description("\u63D0\u4EA4 Google \u5F00\u6237\u7533\u8BF7\uFF08\u4E0E\u7F51\u9875\u8868\u5355\u4E00\u81F4\uFF1A\u6309\u516C\u53F8\u540D\u79F0\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u65E0\u9700 magKey\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 ID\uFF08\u4E00\u822C\u4E0D\u7528\uFF1B\u8C03\u8BD5\u7528\u6216\u7279\u6B8A\u573A\u666F\uFF09").requiredOption("--account-name <name>", "\u5E7F\u544A\u8D26\u6237\u540D\u79F0\uFF08\u5EFA\u8BAE 22 \u4E2A\u5B57\u7B26\u4EE5\u5185\uFF09").requiredOption("--currency <code>", "\u8D27\u5E01\uFF1AUSD | CNY").requiredOption("--timezone <tz>", "\u65F6\u533A\uFF0C\u5982 Asia/Hong_Kong\uFF08\u53EF\u5148\u67E5 open-account google-timezones\uFF09").requiredOption("--invite-email <email>", "\u53D7\u9080\u7528\u6237\u90AE\u7BB1\uFF08\u8D26\u6237\u9080\u8BF7\u5C06\u53D1\u5230\u6B64\u90AE\u7BB1\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u7B2C\u4E00\u6B65\u4E00\u81F4\uFF09").requiredOption("--promotion-link <url>", "\u63A8\u5E7F\u94FE\u63A5\uFF08\u516C\u53F8\u5B98\u7F51\u6216\u4EA7\u54C1\u9875\uFF1B\u53EF\u5199\u57DF\u540D\uFF0C\u4F1A\u81EA\u52A8\u8865 https://\uFF09").requiredOption("--promotion-type <type>", "\u63A8\u5E7F\u7C7B\u578B\uFF1Ab2b | b2c | app").option("--invite-role <role>", "\u53D7\u9080\u7528\u6237\u89D2\u8272\uFF1AStandard | Admin\uFF08\u9ED8\u8BA4 Standard\uFF09", "Standard").option("--auto-mailbox", "\u81EA\u52A8\u5206\u914D\u90AE\u7BB1", false).option("--counts <n>", "\u672C\u6B21\u5F00\u6237\u6570\u91CF\uFF081-3\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("
|
|
8953
|
+
openAccountCmd.command("google").description("\u63D0\u4EA4 Google \u5F00\u6237\u7533\u8BF7\uFF08\u4E0E\u7F51\u9875\u8868\u5355\u4E00\u81F4\uFF1A\u6309\u516C\u53F8\u540D\u79F0\u81EA\u52A8\u521B\u5EFA/\u5173\u8054\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u65E0\u9700 magKey\uFF09").option("--advertiser-id <magKey>", "\u53EF\u9009\uFF1A\u624B\u52A8\u6307\u5B9A\u5E7F\u544A\u4E3B\u7EC4 ID\uFF08\u4E00\u822C\u4E0D\u7528\uFF1B\u8C03\u8BD5\u7528\u6216\u7279\u6B8A\u573A\u666F\uFF09").requiredOption("--account-name <name>", "\u5E7F\u544A\u8D26\u6237\u540D\u79F0\uFF08\u5EFA\u8BAE 22 \u4E2A\u5B57\u7B26\u4EE5\u5185\uFF09").requiredOption("--currency <code>", "\u8D27\u5E01\uFF1AUSD | CNY").requiredOption("--timezone <tz>", "\u65F6\u533A\uFF0C\u5982 Asia/Hong_Kong\uFF08\u53EF\u5148\u67E5 open-account google-timezones\uFF09").requiredOption("--invite-email <email>", "\u53D7\u9080\u7528\u6237\u90AE\u7BB1\uFF08\u8D26\u6237\u9080\u8BF7\u5C06\u53D1\u5230\u6B64\u90AE\u7BB1\uFF09").requiredOption("--company <name>", "\u516C\u53F8\u540D\u79F0\uFF08\u7528\u4E8E\u5339\u914D\u6216\u521B\u5EFA\u5E7F\u544A\u4E3B\u7EC4\uFF0C\u4E0E\u7F51\u9875\u7B2C\u4E00\u6B65\u4E00\u81F4\uFF09").requiredOption("--promotion-link <url>", "\u63A8\u5E7F\u94FE\u63A5\uFF08\u516C\u53F8\u5B98\u7F51\u6216\u4EA7\u54C1\u9875\uFF1B\u53EF\u5199\u57DF\u540D\uFF0C\u4F1A\u81EA\u52A8\u8865 https://\uFF09").requiredOption("--promotion-type <type>", "\u63A8\u5E7F\u7C7B\u578B\uFF1Ab2b | b2c | app").option("--invite-role <role>", "\u53D7\u9080\u7528\u6237\u89D2\u8272\uFF1AStandard | Admin\uFF08\u9ED8\u8BA4 Standard\uFF09", "Standard").option("--auto-mailbox", "\u81EA\u52A8\u5206\u914D\u90AE\u7BB1", false).option("--counts <n>", "\u672C\u6B21\u5F00\u6237\u6570\u91CF\uFF081-3\uFF0C\u9ED8\u8BA4 1\uFF09", parseInt).option("-t, --token <token>", "Auth Token").option("--verbose", "\u8BE6\u7EC6\u9519\u8BEF\u4FE1\u606F", false).action(async (opts) => {
|
|
8957
8954
|
await runOpenAccountGoogle({
|
|
8958
8955
|
token: opts.token,
|
|
8959
8956
|
advertiserId: opts.advertiserId,
|
|
@@ -8967,7 +8964,6 @@ openAccountCmd.command("google").description("\u63D0\u4EA4 Google \u5F00\u6237\u
|
|
|
8967
8964
|
inviteRole: opts.inviteRole,
|
|
8968
8965
|
autoAllotMailbox: opts.autoMailbox,
|
|
8969
8966
|
counts: opts.counts,
|
|
8970
|
-
managerCustomerId: opts.managerCustomerId,
|
|
8971
8967
|
verbose: opts.verbose
|
|
8972
8968
|
});
|
|
8973
8969
|
});
|
package/dist/skill/SKILL.md
CHANGED
|
@@ -71,7 +71,6 @@ description: >-
|
|
|
71
71
|
| 查询投放数据 | `siluzan-tso stats -m Google -a <mediaCustomerId>` |
|
|
72
72
|
| TSO 首页(网页) | `config show` 取 `webUrl` → `{webUrl}/v3/foreign_trade/tso/home` |
|
|
73
73
|
| 查广告主组(TikTok 等取 magKey) | `siluzan-tso open-account list-groups` |
|
|
74
|
-
| Google 开户(交互,推荐) | `siluzan-tso open-account google-wizard`(对齐 `/openAnAccount` 五步说明 + 两步表单) |
|
|
75
74
|
| Google 开户(脚本) | `siluzan-tso open-account google --company "…" --promotion-link "…" --promotion-type b2c ...`(**无需 magKey**) |
|
|
76
75
|
| Google 开户时区列表 | `siluzan-tso open-account google-timezones`(可加 `--keyword`) |
|
|
77
76
|
| TikTok 开户时区列表 | `siluzan-tso open-account tiktok-timezones`(可加 `--keyword`) |
|
package/dist/skill/_meta.json
CHANGED