aardio 文档
web.rest.iLinkClient 库模块帮助文档
» 微信 iLink 接口文档 » 登录与发送消息范例 » 发送文件范例
web.rest 成员列表 #
web.rest.iLinkClient #
微信 iLink Bot API 客户端。
基于 web.rest.jsonClient,请求与返回数据均为 JSON。
用于合规的微信个人账号 Bot 开发,
支持扫码登录、长轮询接收消息、发送消息、
发送图片/视频/文件、下载接收到的媒体文件等。
授权方式:
- 初始使用 AuthorizationType: ilink_bot_token + 随机 X-WECHAT-UIN
- 扫码确认后自动切换为 Authorization: Bearer
创建 iLink Bot 客户端。
web.rest.iLinkClient() #
返回对象:webRestILinkClientObject
web.rest.iLinkClient(config) #
创建 iLink Bot 客户端。
config 可选指定以下字段:
- userAgent,proxy,proxyBypass,httpFlags 等 HTTP 客户端参数
- tokenPath: Bot token 持久化路径
- cdnBaseUrl: CDN 基址(默认 "https://novac2c.cdn.weixin.qq.com/c2c")
- channelVersion: 渠道版本号(默认 "1.0.3")
- botAgent: Bot 标识(默认 "aardio-iLinkClient/1.0.0")
- ilinkAppId: iLink-App-Id 头(可选)
- ilinkAppClientVersion: iLink-App-ClientVersion 头(可选)
- routeTag: SKRouteTag 头(可选)
web.rest.iLinkClient(iLinkClient) #
可将界面线程的 web.rest.iLinkClient 作为参数,
在工作线程中重建具有相同构造参数与认证令牌的 iLink Bot 客户端。\
webRestILinkClientObject 成员列表 #
webRestILinkClientObject._http #
inet.http客户端,用于执行 http 请求
返回对象:inetHttpObject
webRestILinkClientObject.aesEcbDecrypt(ciphertext,key) #
AES-128-ECB 解密
webRestILinkClientObject.aesEcbEncrypt(plaintext,key) #
AES-128-ECB 加密(用于 CDN)
webRestILinkClientObject.aesEcbPaddedSize(plaintextSize) #
计算 AES-128-ECB PKCS7 填充后大小
webRestILinkClientObject.checkQrCodeStatus(qrcode) #
检查二维码扫码状态。
扫码确认后自动绑定 bot_token
webRestILinkClientObject.close() #
关闭对象释放资源
webRestILinkClientObject.defaultHeaders
替换所有请求默认添加的HTTP头
请求结束时不会清空此属性
该值可以是一个字符串,也可以是键值对组成的table对象
webRestILinkClientObject.downloadMedia(media,savePath) #
下载并解密 CDN 媒体。
@media CDNMedia 对象(含 encrypt_query_param, aes_key 字段)
@savePath 可选保存路径。不指定则返回 buffer
webRestILinkClientObject.downloadMsgMedia(fromMsg,itemIndex,savePath) #
从接收消息中提取并下载媒体。
@fromMsg 接收的消息对象
@itemIndex 消息项索引(默认 1)
@savePath 可选保存路径
webRestILinkClientObject.get(网址,参数表) #
使用该GET方法提交请求,获取资源
请求参数将会自动转换为URL附加参数,
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码
webRestILinkClientObject.getAuthToken() #
获取认证令牌(token)。
扫码登录或创建对象的参数表指定了 tokenPath 字段都会自动设置令牌
webRestILinkClientObject.getConfig(fromMsg) #
获取账号配置(含 typing_ticket)。
返回值可作为 sendTyping 的第一个参数
webRestILinkClientObject.getQrCode(botType) #
获取登录二维码。
@botType 可选,默认为 3(个人账号)。
成功返回包含 qrcode_url 字段的对象
webRestILinkClientObject.getUpdates(buf) #
长轮询获取最新消息。
成功返回包含 msgs 数组的对象
webRestILinkClientObject.getUploadUrl(params) #
获取 CDN 上传预签名参数。
一般使用 uploadFile 方法即可,无需直接调用此方法
webRestILinkClientObject.lastRequestUrl #
获取最后一次请求的 URL。
允许的 beforeRequestHeaders 事件中修改此属性以改变请求地址。
webRestILinkClientObject.lastResponse() #
获取最后一次服务器返回的数据。
如果控制台已打开或在开发环境中导入 console 库则在控制台输出数据
下载文件时该值为空
webRestILinkClientObject.lastResponseError() #
返回服务器最后一次返回的错误响应,并转换为错误对象。
与调用 API 时转换响应数据一样,支持相同的服务器响应格式 。
如果错误来自本地(lastStatusCode 属性为 null)则此函数返回 null 。
如果最后一次发生请求成功,则此函数返回 null 。
如果在参数 @1 中指定返回字段,且错误对象包含该字段则使用直接下标获取并返回字段值。
获取字段失败返回 null 而非抛出异常
webRestILinkClientObject.lastResponseObject() #
获取最后一次服务器返回的对象(已将响应文本解析为对象)。
请求失败,或者下载文件时此属性值为空。
webRestILinkClientObject.lastResponseString() #
获取最后一次服务器返回的原始数据
请求失败,或者下载文件时此属性值为空
webRestILinkClientObject.lastStatusCode #
获取最近一次请求返回的HTTP状态码
100 ~ 101 为信息提示
200 ~ 206 表示请求成功
300 ~ 305 表示重定向
400 ~ 415 表求客户端请求出错
500 ~ 505 表示服务端错误
webRestILinkClientObject.lastStatusMessage() #
获取最近返回的HTTP状态码文本描述
第二个返回值为状态码
webRestILinkClientObject.notifyStart() #
通知微信服务器客户端正在启动(可选调用)
webRestILinkClientObject.notifyStop() #
通知微信服务器客户端正在停止(可选调用)
webRestILinkClientObject.ok() #
最后一次请求是否成功
服务器应答并且状态码为2XX该函数返回真
webRestILinkClientObject.post(网址,参数表) #
使用该POST方法提交请求,新增或修改资源
请求参数可以指定表或字符串,如果是表请求前会转换为字符串
成功返回数据,失败返回空值,错误信息,错误代码
webRestILinkClientObject.sendFile(fromMsg,filePath,fileName,text) #
发送文件消息。
@fileName 可选,默认使用文件名
webRestILinkClientObject.sendImage(fromMsg,filePath,text) #
发送图片消息。
@fromMsg 接收的消息对象
@filePath 图片文件路径
@text 可选附带文本(有文本时文本与图片分开发送)
webRestILinkClientObject.sendMediaByPath(fromMsg,filePath,text,fileName) #
发送媒体文件(自动根据扩展名检测类型)
webRestILinkClientObject.sendMessage(fromMsg,content) #
发送消息。
@content 可为字符串(支持 Markdown)或数组。
同一个 @fromMsg 可多次回复
webRestILinkClientObject.sendTyping(linkConfig,status) #
发送输入状态。
@status 为 1 表示正在输入,2 表示取消输入
webRestILinkClientObject.sendVideo(fromMsg,filePath,text) #
发送视频消息
webRestILinkClientObject.setHeaders
设置所有请求默认添加的HTTP头
webRestILinkClientObject.setHeaders(headers)
参数 @headers 必须指定一个表中,
用该表中的键值对更新 defaultHeaders 属性中的键值
如果addHeaders的原属性值不是一个表,则先清空该属性
webRestILinkClientObject.setTimeouts(连接超时,请求超时,接收超时) #
设置超时,以亳秒为单位(1秒为1000毫秒)。
webRestILinkClientObject.uploadFile(filePath,toUserId,mediaType) #
上传文件到微信 CDN。
@filePath 文件路径
@toUserId 目标用户 ID
@mediaType 媒体类型: 1=IMAGE, 2=VIDEO, 3=FILE, 4=VOICE
成功返回 {filekey,downloadEncryptedQueryParam,aeskey,fileSize,fileSizeCiphertext}
webRestILinkClientObject.waitQrCodeStatus(qrcode,maxRetries,pollInterval) #
阻塞式等待扫码登录成功
webRestILinkClientObject 事件列表 #
webRestILinkClientObject.onQrCodeScanned #
function(qrcode){
__/已扫码但未确认时回调此事件/
}
Markdown 格式