我们开发的脚本(比如用按键精灵开发)通常会独占设备运行,比如在用户手机上运行的脚本,手机就让脚本独享了,用户通常会把跑脚本的手机(以下简称为「脚本机」)放在固定位置,比如家里,自己使用另一台手机继续忙活。当用户需要调整脚本运行时,用户不得不跑回到脚本机跟前操作,或者用户需要自行配置远程桌面环境登录到脚本机操作,先停止脚本,调整参数,再重新运行脚本,颇为折腾。
喵提醒的远程配置服务,它可以帮助我们的脚本增加一个让用户远程修改脚本参数的服务。用户修改参数后,脚本会拉到最新的参数,以调整脚本的运行。
步骤:
1、开发者在喵提醒(搜索关注该微信公众号)注册账号,开通开发者权限(位于喵提醒「个人中心-我的-开发者」页面,需要绑定手机号)。
2、创建一个「应用」起个名字,比如“xx脚本”,然后在应用内点击「远程配置」创建一个「参数模板」。
一个「应用」可以包括多个「参数模板」,我习惯给用版本号来给参数模板命名,比如“v1.0”,这样我需要在新版本脚本中修改参数时,可以新开一个版本,而不影响已经发布的旧版本脚本使用。创建一个参数模板后,在参数模板上设计参数配置界面,这个界面设计成什么样子,用户就会在一个什么样子的界面上操作你的脚本参数。参数操作由控件实现,目前支持这5种控件:
- 文本框:用户可以自由输入单行文本;
- 开关:用户可以选择“开”或“关”其中一个状态;
- 步进器:用户可以输入数字(整数或小数),或通过按钮调整数值;
- 滑块:用户可以选择整数,通过拖动滑块调整数值;
- 选择器:预设若干个可选项,让用户选择其中一个。
设计参数配置界面时,需要先创建一个“控件组”,然后在控件组上添加控件,喵提醒希望开发者可以根据参数功能类型给控件分组,让用户更好理解参数的意义。例如,我有个脚本帮助用户在市场自动购买和出售物品,我设计这样一个参数模板:
设计完成后,点击「保存并发布」,喵提醒会给参数模板分配一个获取参数API网址,在「设置」Tab可以找到,它长这样:
http://miaotixing.com/rparam?rp=rp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&code=
这个网址用于后续拉取用户填写参数用,但这个网址还不能直接访问,它还缺一个「喵码」参数code(也许你留意到,即上面的地址最末的参数code还没有值),喵码需要由跑脚本的用户提供,这个参数的作用是让喵提醒知道你的脚本要拉哪个用户的所填写的参数。
3、为了获得用户的「喵码」,我们需要在脚本的设置界面中加入一个「喵码」输入框,引导用户在喵码注册账号并创建一个「提醒单」:
喵提醒会给提醒单分配一个喵码(7位字符,区分大小写),一旦用户提交了他的喵码,我们把喵码拼接在上一步骤的网址code参数,就得到一个完整的参数获取地址。在脚本中访问这个网址,就可以拉到用户填写的参数。完整的参数获取地址长这样:
http://miaotixing.com/rparam?rp=rp-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&code=txxxxxx
脚本拉到的参数的数据的结构都是由“键(key)”和“值”构成。事实上,在设计参数模板时候,点击「预览」Tab可以看到数据格式和默认值是长什么样。比如“买入物品:萝卜”这组参数中,key是“买入物品”,值是“萝卜”。
脚本中读取参数时候,是通过key来找对应的值。因此,脚本中读取参数时用的key,要和参数模板中设计的key对的上,不然会取值取了个寂寞。
4、根据参数调整脚本运行。
在脚本首次拉参数时,用户会收到一个提醒单与参数模板绑定的通知(喵码)。由于用户还没提交过参数修改,脚本拉到的是参数的默认参数。用户进入提醒单的「远程控制」界面,可以看到和你早前设计一致的参数配置界面,用户在界面中修改参数并提交,脚本就能通过网址拉到用户最新配置的参数。由于参数存在缓存,用户修改参数后或许要稍等一会,脚本才能拉到最新的参数,这个等待时间不会超过1分钟。
拉到的参数如何读取使用,是不是有些头大?
针对按键精灵PC版、按键精灵手机助手、易语言、一键玩、自动精灵等多种开发语言,喵提醒分别提供了可以直接使用的代码,在开发者文档的「常见开发语言示例」可以找到。把代码贴入到脚本顶部,把 RParamUrl 变量换成你的获取参数网址,用户输入的喵码保存到变量 MiaoCode ,在需要拉用户最新参数时运行函数 LoadRParam() 把参数下载到脚本机,最后通过函数 RParam(key, defValue) 读取具体key的参数即可。
喵提醒还有DEMO项目可以下载体验,也在开发文档中。
注意事项 & 建议:
1、拉参数时,一定要带上喵码,如果喵码为空时获取不到任何参数;如果喵码无效,会拉到参数的参数的默认值。
2、拉参数下载到脚本机的时机,应该在一组连续的相关操作之前,不要每读取一个参数前都拉一次参数,否则可能出现意想不到的后果。
举个例子,我的脚本允许用户设置参数:“卖出物品”和“卖出价格”,假设用户原先设置了“卖出物品=香蕉,卖出价格=15”,但后面修改成“卖出物品=苹果,卖出价格=2”。若脚本执行卖出物品一系列操作时候,先拉一次参数到脚本机,然后再分别读取“卖出物品”和“卖出价格”,那无论是读到的是缓存中的“香蕉,15”还是最新的“苹果,2”都是正确的成对的信息,都是符合用户意图的,只是参数新旧的区别罢;相反,如果拉参数后读到“卖出物品=香蕉”,在读卖出价格前又拉一次参数,而恰好这个时候用户提交了新参数且生效了!读到“卖出价格=2”,会导致脚本错误的以“香蕉,2”的参数执行了卖出动作,给用户造成损失。
3、每次修改参数模板,都要考虑对已经发布的脚本会有什么影响。例如,你准备把参数模板中的key“卖出物品”改为“卖出物品名称”,那之前发出去的脚本如果还有用户在使用,则这些脚本都不能通过key“卖出物品”读到参数了。如果你只是想让用户看到的参数配置界面上的文案“卖出物品”改为“卖出物品名称”,可以修改控件的“名称”即可,名称是用于给用户看的,可以和key不一样。
如果你打算在下一个版本的脚本中增加某些参数或弃用某些参数,最好是新开一个参数模板来做了,避免对老版本的脚本用户带来困惑。
4、修改参数模板控件,「保存草稿」是不会影响用户的参数配置界面的,只有点击「保存并发布」后,用户看到的参数配置界面才会被更新。
附:
喵提醒开发文档:位于喵提醒公众号菜单「服务-个人中心-我的-开发者文档」