# web.rest.qywx 库模块帮助文档

<details>  <summary>示例</summary>  <p>

```aardio 

//请先导入 web.rest.qywx 库然后再调用下面的代码
var qywx = web.rest.qywx();

//请指定企业微信的 corpid,corpsecret，后续所有的 token 获取、拼接、过期重试，它都会全自动处理
qywx.setAuth("YOUR_CORPID", "YOUR_CORPSECRET");

/*
// (可选) 设置全局错误拦截，只要接口报错就会走到这里
qywx.onError = function(errcode, errmsg){
    print("【全局拦截】API调用失败:", errcode, errmsg);
}
*/

var wx = qywx.api();

/*
1. 因为网址路径叫 get，必须写为以 ["get"] 格式放到下标里避免被当成 HTTP 方法。
2. 最后的 .get(...) 才是真正的发起 HTTP GET 请求。
*/
*/
var user = qywx.user["get"].get(userid="*********")

var result = wx.externalcontact.groupchat.list({
	status_filter=0;
	limit=10;
})

// debug 模式调用接口，同一个api每分钟不能超过5次
var result = wx.externalcontact.groupchat.list({
	status_filter=0;
	limit=10;
},{
	debug = 1 //查询：https://open.work.weixin.qq.com/devtool/query
})

if(result[["errcode"]]!==0){
	print(result[["errcode"]],result[["errmsg"]])
}

// ==========================================
// 场景：发送应用消息 (POST 请求，提交 JSON)
// 接口：https://qyapi.weixin.qq.com/cgi-bin/message/send
// ==========================================
var sendResult = api.message.send({
    touser = "UserID1|UserID2"; // 接收人，多个用|分隔
    msgtype = "text";           // 消息类型
    agentid = 1000001;          // 你的企业微信应用ID
    text = {
        content = "你好，这是一条来自 aardio 的自动通知！"
    };
});

if(sendResult[["errcode"]] === 0){
    print("消息发送成功！");
}

// ==========================================
// 场景：获取打卡数据 (POST 请求，复杂的 JSON 结构)
// 接口：https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata
// ==========================================
var checkinData = api.checkin.getcheckindata({
    opencheckindatatype = 3; 
    starttime = tonumber(time().addDays(-1)); // 昨天的 Unix 时间戳
    endtime = tonumber(time());               // 今天的 Unix 时间戳
    useridlist = ["zhangsan", "lisi"];        // 纯数组会转为 JSON Array
});

if(checkinData.errcode === 0){
    print("打卡记录条数：", #checkinData.checkindata);
    print( JSON.stringify(checkinData.checkindata,true) );
}
```

</p></details>

## web.rest 成员列表 <a id="web.rest" href="#web.rest">&#x23;</a>

### web.rest.qywx <a id="web.rest.qywx" href="#web.rest.qywx">&#x23;</a>
企业微信 API 客户端。

创建企业微信 API 客户端。

### web.rest.qywx("UserAgent","代理服务器","绕过代理的主机",连接选项) <a id="web.rest.qywx" href="#web.rest.qywx">&#x23;</a>
创建 REST 客户端，所有参数可选。  
UserAgent 用于自定义 User-Agent 请求标头，用于服务器识别请求程序特征。  
HTTP 代理服务器请指定为 "代理服务器地址:端口" 格式，  

SOCKS 代理服务器请指定为 "socks=代理服务器地址:端口" 格式   
└──  [代理格式说明](https://www.aardio.com/zh-cn/docs/library-guide/std/inet/proxy.html)  

"绕过代理的主机" 用法参考 inet.setProxy 源码的示例，一般不需要指定。  
连接选项可用一个数值参数指定打开会话的选项，一般不需要指定。

### web.rest.qywx() <a id="web.rest.qywx" href="#web.rest.qywx">&#x23;</a>
[返回对象:webRestClientObject](https://www.aardio.com/zh-cn/docs/library-reference/web/rest/client.html#webRestClientObject)
