# API常见问题

# 1.通过命令行启动客户端报错

请确认客户端版本在V3.2.2及以上,win11系统的用户建议使用V3.3.0及以上版本
请确认使用的API调用方式参数正确
请确认是否使用管理员身份运行CMD或者PowerShell
请确认是否在智纹主目录打开,或已进入智纹主路径

# 2.使用有界面服务和无界面服务启动Local API服务有何区别呢?

1.有界面服务会被限制同个账号只能在一个设备登录
2.appId和appSecret则不限制同个账号同时登录多个设备的场景,如果有一个账号想要在多个机器上跑自动化的需求,
则可以使用headless配合appId和appSecret使用Local API接口
3.无界面服务调用接口需签名验证,请求参数需传signature

# 3.appId和appSecret在哪里获取

打开智纹浏览器,点击系统设置,然后点击Local API,点击开启鉴权控制。如果没显示该界面,请联系管理员分配权限

# 4.如何重置appSecret?

进入系统设置,然后点击Local API,点击重置appSecret,重置后请注意保存

# 5.如果更换了appSecret,用旧值启动的服务调用的api接口还能继续用吗?

不能。会返回appSecret失效的信息,一个账号仅能对应一个appSecret,所以谨慎操作重置,重置后旧值失效,请安全的保存该值

# 6.一个用户可以在多台机器同时使用api吗?

无界面模式支持多台机器同时使用,有界面模式不支持

# 7.请求接口报签名验证失败,是什么原因?

检查请求体里是否有signature字段,且signature=MD5(DM5(appId+appSecret)),即把appId+appSecret进行MD5加密,再进行MD5加密,得到32位的小写签名

# 8.自动化(webdriver、playwright、puppeteer等)报连接失败是怎么回事?

检查连接端口是否正确,此处端口为打开浏览器接口返回的ws字段里的端口,非智纹进程的服务端口
ws字段示例:"ws://127.0.0.1:59192/devtools/browser/d25b3f5d-21a4-49d2-9eb8-582c67dc4e4d"
亦可直接使用自动化工具直接连接ws地址,进行自动化操作,如:

const browser = await puppeteer.connect({
  browserWSEndpoint: 'ws://127.0.0.1:59192/devtools/browser/d25b3f5d-21a4-49d2-9eb8-582c67dc4e4d',
})
const pages = await browser.pages()
const page = await browser.newPage()
await page.goto('https://www.baidu.com')

# 9.使用接口服务时,不能同时启动智纹浏览器客户端界面?

可以同时启动智纹浏览器客户端界面和使用接口服务,但只能限制单台设备使用接口服务
如果需要多台设备同时使用接口服务,请使用无界面模式

# 10.使用命令行运行智纹浏览器.exe,请求接口突然没有响应了\程序突然卡住了?

因为控制台默认开启了“快速编辑模式”。当“快速编辑模式”开启时,当你的鼠标不小心在界面上点击,就会自动进入编辑模式(可以看到
界面上会出现一个表示编辑的光标),可能导致控制台输出阻塞甚至后台程序阻塞。按回车或者 Esc 或者鼠标右键后,程序可恢复继续运行

# 11.请求api接口时报错:访问接口超出频率限制,请稍后再试是什么问题?

接口有请求频率限制,每个接口每分钟最多请求次数可以在客户端Local API中查看,请合理控制请求频率

# 12.请求api接口时报错:缺少请求参数

请检查参数设置,post接口参数需要放在body,使用json格式。建议先使用postman调通后再使用脚本调用

# 13.命令行启动报错:Invalid credential information, please check the parameters and restart the interface free mode

请检查命令行启动参数的appId和appSecret是否正确,填写正确参数后再次启动

# 14.接口调用支持多线程吗?

支持

# 15.调用打开浏览器接口耗时较长?

打开环境速度和本机网络及环境的代理有关,请检查网络环境。

# 16.python运行webdriver报错executable_path has been deprecated,please pass in a Service object.

使用的selenium版本不同,4.0版本selenium需要通过driver = webdriver.Chrome(service=Service(webdriver_path), options=options)创建

# 17.使用java对接api,运行时中文乱码导致数据序列化错误

指定UTF-8运行jar包:java -Dfile.encoding=UTF-8 -jar xxx.jar

# 18.接口参数使用不规范而导致程序出错甚至闪退

请注意,使用Local Api创建或修改窗口,或是其他操作时,接口参数一定要符合规范,不要随意删改参数,不要传递未知意义的值或类型

# 19.使用api打开浏览器,每次都会自动打开之前打开的网页,如何关闭?

# 打开系统设置,把本地设置里的打开上次关闭时的标签页选项关闭即可。

# 20.使用api打开浏览器,每次都会自动打开当前账号所属平台网址,如何关闭?

# 打开系统设置,把本地设置里的打开当前账号所属平台网址选项关闭即可。