作者:南吕、奶茶
关键词:影刀客户端、html、JavaScript
问题:某品牌客户想要在全公司范围内推广影刀使用;it部门为业务同学开发了一批高价值需求,计划通过统一调度执行的方式运行应用。
业务同学只需打开影刀客户端,切换为调度模式,再从控制台调度运行应用。
但在门店的实践过程中发现,许多员工是兼职或临时承接任务,难以同时掌握运行应用的步骤。
解法:借用影刀的自动化插件,在网页上通过点击按钮实现:
1.自动登录本地的影刀客户端,自动进入调度模式
2.运行调度任务等调度操作


<button class="container1">
<a href="shadowbot:None">启动影刀客户端,并进入调度模式</a>
</button>
(感谢颜劫提供的方法)
<button id="submit-btn" class="container2" >调度指定账号,运行测试应用</button>
以下JS代码基于影刀API调度的接口,实现了发起一个GET请求获取accessToken,然后将获取到的数发起POST请求调度运行应用的过程。这个代码作为一个简单的示例代码,用于演示前端中如何使用Fetch API发送请求,并利用Promise处理请求响应结果。大家可以尝试调用其他影刀调度接口。
<script>
// 找到按钮元素
const submitBtn = document.getElementById("submit-btn");
// 为按钮添加点击事件
submitBtn.addEventListener("click", function() {
// 定义调用的接口网址
const getAccessToken = "https://api.winrobot360.com/oapi/token/v2/token/create?accessKeyId=[替换你的accessKeyId]&accessKeySecret=[替换你的accessKeySecret]";
const startJob = "https://api.winrobot360.com/oapi/dispatch/v2/job/start";
// 获取accessToken
fetch(getAccessToken, {
method: "GET",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
})
.then(response => response.json())
.then(data => {
console.log(data);
const accesstoken = data.data.accessToken;
// 发起post请求,启动应用
fetch(startJob, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${accesstoken}`,
},
body: JSON.stringify({
"accountName" : "[机器人账号名称]",
"robotUuid" : "[应用uuid]"
//这里可以添加应用传参
}),
})
.then(response => response.json())
.then(data => {
console.log(data);
const jobUuid = data.data.jobUuid;
// 这里可以添加查询应用运行结果、将响应内容显示到页面上等操作
})
.catch(error => {
console.error(error);
// 这里可以处理请求失败的情况
})
})
.catch(error => {
console.error(error);
// 这里可以处理请求失败的情况
});
});
</script>

1.客户反馈:

2.某客户根据自身业务实际,结合类似思路,开发出业务工具箱(基于影刀API接口,实现调度执行业务应用)
