辅助功能

推送服务(长连接功能)

因软件更新较快,部分文档内容与软件最新版本有所出入,请知悉。


推送到电脑(V2 版本)

适用于Quicker 1.23.0+版本。

在Quicker和服务器之间建立一条持续存在的链接,从而在需要的时候,可以将信息从其他设备推送给运行Quicker的电脑。


相对于V1版本的长连接功能,主要变更的内容如下:

  1. 推送接口地址修改为 https://push.getquicker.cn/to/quicker 。
  2. 长连接协议修改为Websocket。
  1. 增加等待返回结果的功能。
  2. 新版Quicker和新版推送接口需要配合使用。
  1. 最大推送请求长度为30KB。
  2. 增加自动重连等机制,改善稳定性。
  1. 免费版的限制:
    1. 不支持运行quicker动作。 已支持。
    2. 不支持等待响应结果。已支持。
    1. 同时只能一台电脑连接。



设置

Quicker连接到推送服务

此功能默认为关闭状态。请从菜单中开启连接:

  • 点击面板上的头像按钮。
  • 在菜单中展开“推送服务”的子菜单;
  • 选择“连接到推送服务”即可。


正常连接后,将在头像按钮右下角和菜单中显示连接状态。


设置推送验证码

从菜单中可以快速打开会员中心的推送设置网页。

在会员中心网页中设置推送验证码。


使用推送小工具

连接建立、设置好验证码以后,就可以简单体验一下用手机发送文字到窗口了(使用手机上提供的语音输入方式)。

用微信或其它二维码工具扫码会员中心推送页面里的二维码即可打开一个移动端网页。



接口说明


推送内容到电脑



接口网址: https://push.getquicker.cn/to/quicker 

Post请求

接口参数:在请求体中以 json 格式传递参数

{
  "toUser":"youremail@domain.com",
  "code":"XsfFYC6Q48ib",
  "toDevice":"",
  "operation":"paste",
  "data":"Hello Quicker!Quicker真好玩!哈哈😄",
  "action":"动作名或ID",
  "wait":false,
  "maxWaitMs":5000,
  "txt":false
}


参数说明:

  • toUser:自己的账号Email地址。
  • code:前面步骤中设置的推送验证码。
  • toDevice(可选):目标设备(电脑)名。
    • 留空或不提供此参数:表示发送给当前活动主机(显示绿点);
    • * :表示发送给当前账号所有主机(此处与V1版本中不同);
    • 某个特定的电脑主机名称:发送给指定的电脑(必须已建立好长连接)。
  • operation(可选):操作类型,默认为 copy 。可选值:
    • copy  将内容复制到剪贴板
    • paste  将内容粘贴到当前窗口
    • action 运行动作。此时通过“action”参数传入动作名称或ID,通过“data”参数传入动作参数(可选)。
    • open 打开网址。此时通过data参数传入要打开的网址。
    • input sendkeys 模拟输入内容。此时通过data传入“模拟按键B”语法格式的内容。(1.27.3+版本请使用sendkeys)
    • inputtext 模拟输入文本(原样输入)。
    • inputscript 多步骤输入。组合多个键盘和鼠标输入步骤,参考文档。 (1.28.16+)
    • downloadfile 下载文件。下载data参数中给定的文件网址(单个)。 (1.28.16+)
  • wait(可选):是否等待(动作)返回结果,可选值为 true 或 false ,默认为 false 。如果等待,则等待Quicker运行动作并取回动作的返回结果。
  • maxWaitMs(可选):最多等待毫秒数,默认为3000(最大值为30,000毫秒)。
  • data:数据内容。根据操作类型(operation):
    • copy paste input 时,表示要复制、粘贴或键入的内容。
    • action 时,表示动作的参数。此时data参数可选。
    • open 时,可以为网址或文件路径。
  • action:在操作类型(operation)为 action 时,提供动作的id或名称(使用动作名称时,不能有重复名称的动作)。
  • txt:(可选)是否返回纯文本格式的结果。默认为否,返回json格式。


Get请求

https://push.getquicker.cn/to/quicker?toUser=帐号email&code=推送验证码&toDevice=目标设备名(可选)&operation=操作类型(可选)&data=经过URL编码的数据(可选)&action=动作ID或名称(可选)&wait=是否等待(可选)&maxWaitMs=最长等待毫秒数(可选)&txt=是否返回纯文本结果(可选)


所有参数应当根据需要进行URL编码。



返回值

返回Json数据时,内容格式

{
    "isSuccess": true,
    "successCount": 1,
    "errorMessage": null,
    "timeCost": 219,
    "devices": {
        "DESKTOP-37OSSM2": "Ok."
    }
}
  • isSuccess:是否成功推送消息。
  • successCount:成功推送的消息个数。
  • errorMessage:错误消息。
  • timeCost:推送+等待耗时。
  • devices:各设备的返回结果。


返回文本数据时:

  • 如果不等待:
    • 成功时返回:SUCCESS:推送成功设备的数量
    • 失败时返回:ERROR:错误消息
  • 如果等待Quicker返回结果:
    • 成功时返回:以换行分隔的每个设备响应内容
    • 失败时返回:ERROR:错误消息


如何从动作返回内容

  • 在动作中结束动作的位置通过“停止”模块,输出要返回的内容。
  • 推送API调用中,添加wait参数,设置值为true。添加maxWaitMs参数,设置最长等待毫秒数。



获得已连接的设备列表


接口网址:https://push.getquicker.cn/get/devices?email=账号Email&code=推送验证码


返回数据的格式:

{
"count": 2,
"activeDevice": "主机名1",
"devices": [
"主机名1",
"主机名2"
]
}


多台电脑连接

当多个客户端使用同一个帐号连接时,只有一个客户端可以处于“活动”状态。推送的内容将默认发送到“活动”客户端。


活动状态的客户端用户图标右下角的点为绿色


非活动客户端用户图标右下角的点为灰色


后连接的客户端会自动变为“活动”客户端。


如果希望将非活动客户端转变为活动客户端,可以点击“设为活动客户端”菜单。



同步通知

使用同一帐号的设备都连接到推送服务器之后,当一个电脑上修改配置后,将会在30-60秒之后通知其他电脑进行同步。



示例工具

  • IOS捷径
      • 安装后编辑捷径,填写Email地址和验证码。
      • 与前一个捷径“发送到电脑”配合,完成听写并输入到电脑的窗口中。
      • 安装后:
        • 给予听写文本的权限、运行其它快捷指令的权限。
        • 修改最后一步运行其它快捷指令,重新选择前一个安装的“发送到电脑”快捷指令。
  • 其它




推送到Email

通过API调用,给自己的Quicker账号邮箱发送通知邮件。一般用于自动化场景下给自己发送通知。


💡 限专业版。

💡 微信登录的用户请先在网页里绑定个人邮箱。

💡 为避免垃圾邮件,仅支持给自己的Quicker账号绑定的Email地址发送邮件。

💡 邮件发送需要一定的时间。


接口说明


接口网址: https://push.getquicker.cn/to/email 


Get请求

各参数需要进行URL编码。

https://push.getquicker.cn/to/email?toUser=账号邮箱&code=推送验证码&subject=邮件标题&plainBody=纯文本邮件内容&htmlBody=Html格式的邮件内容 


Post请求

接口参数:在请求体中以 json 格式传递参数


{
  "toUser":"youremail@domain.com",
  "code":"XsfFYC6Q48ib",
  "subject":"邮件标题",
  "plainBody":"纯文本格式的邮件消息内容。",
  "htmlBody":"HTML格式的邮件消息内容。"
}


返回结果

{
    "isSuccess": true,
    "message": "ok"
}


参考动作:将选中内容发送给自己的Email



WebSocket 直连

自1.28.16版本开始,Quicker提供了WebSocker服务功能,可以通过Websocket协议直接连接到Quicker。

相当于通过推送服务,直连方式不需要经过服务器中转,网络延迟小,也有助于传送更大量的数据。

设置

在设置窗口 -> 手机APP/WebSocket设置页面中,开启WebSocket服务,并根据需要修改默认端口和验证码。

通信协议


通过文本格式向Quicker发送请求并获取响应。请求和响应都使用Json格式。

请求地址

  • 如果未设置验证码:ws://电脑ip地址:设置的端口号/ws
  • 如果设置了验证码:ws://quicker:password@电脑ip地址:设置的端口号/ws(Http基本验证,用户名quicker,密码为设置中指定的验证码。根据您使用的Websocket客户端的不同,使用对应的凭据设定方式。)

请求消息

{
  "messageType":2,
  "serial": 1000,
  "operation":"paste",
  "data":"Hello Quicker!Quicker真好玩!哈哈😄",
  "action":"动作名或ID",
  "wait":false
}

参数说明

  • messageType:消息类型标识,请求消息为2.
  • serial:请求编号(不强制编号,可以直接写0)。
  • operation: 操作类型。请参考推送请求消息格式。除推送中的操作类型,另外支持sendfile、pasteimage操作,详见后续章节说明。
  • data:操作参数数据。请参考推送请求消息格式。
  • action:操作类型为action时,指定动作的id或名称。请参考推送请求消息格式。
  • wait:是否等待动作响应。


传输文件

相对于推送服务,websocket直连不受带宽限制,可以用于传送文件(其他设备传送到Quicker)。具体协议如下:

  • 通过两条消息传送文件。
  • 第一条:文本消息,告知下一步要传送文件,以及文件的名称。
  • 第二条:二进制消息,发送文件内容。


文本消息格式:

{
    "messageType":2,
  	"serial": 1000,
	"operation":"sendfile",
    "data":"文件名"
}

二进制消息:为文件内容字节数组。js参考代码:

function sendFile() {
        var file = document.getElementById('filename').files[0];

        if (!file) {
            return
        }
        if (file.size > 10000000) {
            alert('File should be smaller than 1MB')
            return
        }

        var filename = file.name;
        console.log('file name:',filename);

        socket.send(JSON.stringify({ operation:'sendfile', data: filename}));

        var reader = new FileReader();
        var rawData = new ArrayBuffer();
        reader.loadend = function () {
        }
        reader.onload = function (e) {
            rawData = e.target.result;
            socket.send(rawData);
            alert("the File has been transferred.")
        }
        reader.readAsArrayBuffer(file);
    }

响应消息格式

{
  "MessageType":4,
  "ReplyTo":0,
  "IsSuccess":true,
  "Data":"D:\\Docs\\Quicker\\_recv\\20220113_021127521_quicker.bin",
  "Message":"ok"
}

参数:

  • MessageType,固定为4.
  • ReplyTo:响应的哪一条消息的Serial值。
  • IsSuccess:是否成功响应。
  • Data:返回的数据。
  • Message:错误消息。



语雀在语雀上查看