企业微信提供了丰富的API接口,可以帮助开发者快速、便捷地与企业微信进行交互。本文将从多个方面对企业微信API接口文档进行详细的阐述。
一、获取Access Token
在使用企业微信API接口前,需要先获取Access Token。Access Token是企业微信API接口调用的唯一凭证。获取方法如下:
GET https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=ID&corpsecret=SECRET
其中,参数corpid为企业ID,参数corpsecret为应用的Secret,需要在企业微信管理后台中进行配置。返回结果如下:
{
"errcode": 0,
"errmsg": "ok",
"access_token": "accesstoken000001",
"expires_in": 7200
}
获取到Access Token后,可以通过有效期判断其是否需要重新获取。
二、发送文本消息
企业可以使用API接口向指定成员或部门发送文本消息。消息内容支持文本格式,消息长度不超过2048个字节。发送方法如下:
POST https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN
POST数据格式如下:
{
"touser" : "UserID1|UserID2|UserID3",
"toparty" : "PartyID1|PartyID2",
"totag" : "TagID1 | TagID2",
"msgtype" : "text",
"agentid" : 1,
"text" : {
"content" : "文本消息内容"
},
"safe":0,
"enable_id_trans": 0,
"enable_duplicate_check": 0,
"duplicate_check_interval": 1800
}
其中,touser为成员ID列表,toparty为部门ID列表,totag为标签ID列表,msgtype为消息类型,可选值包括text、image、voice、video、file、news,agentid为应用ID,text为文本消息内容。其中,safe为是否加密消息,0表示不加密,1表示加密。enable_id_trans为是否开启id转译,0表示不转译,1表示转译。enable_duplicate_check为是否开启重复消息检查,0表示不开启,1表示开启。duplicate_check_interval为重复消息检查的时间间隔,默认为1800秒。
发送成功后,返回结果如下:
{
"errcode" : 0,
"errmsg" : "ok",
"invaliduser" : "UserID1",
"invalidparty":"PartyID1",
"invalidtag":"TagID1"
}
其中,invaliduser为不合法的成员ID列表,invalidparty为不合法的部门ID列表,invalidtag为不合法的标签ID列表。
三、上传临时素材
企业可以通过API接口上传临时素材,素材类型包括图片、语音、视频和文件。上传方法如下:
POST https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE
其中,type为素材类型,可选值为image、voice、video和file。POST数据格式如下:
Content-Type: multipart/form-data; boundary=------------------------xxx
Content-Disposition: form-data; name="media"; filename="media.jpg"
Content-Type: image/jpeg
***图片二进制数据***
--------------------------xxx--
上传成功后,返回结果如下:
{
"errcode":0,
"errmsg":"ok",
"type":"image",
"media_id":"MEDIA_ID",
"created_at":123456789
}
其中,media_id为上传后的素材ID。
四、获取部门成员
企业可以通过API接口获取指定部门的成员列表。获取方法如下:
GET https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=ACCESS_TOKEN&department_id=DEPARTMENT_ID&fetch_child=FETCH_CHILD
其中,参数department_id为部门ID,参数fetch_child为是否递归获取子部门成员,0表示不递归,1表示递归。返回结果如下:
{
"errcode": 0,
"errmsg": "ok",
"userlist": [
{
"userid": "zhangsan",
"name": "张三",
"department": [1, 2],
"position": "产品经理",
"mobile": "13512345678",
"gender": "1",
"email": "zhangsan@dg.cn",
"status": 1,
"avatar": "http://www.qqserver.com/images/zhangsan.jpg",
"telephone": "0755-12345678",
"english_name": "jackxiao",
"extattr": {"attrs":[{"name":"爱好","value":"旅游"}]}
},
{
"userid": "lisi",
"name": "李四",
"department": [1],
"position": "产品总监",
"mobile": "13512345679",
"gender": "1",
"email": "lisi@dg.cn",
"status": 1,
"avatar": "http://www.qqserver.com/images/lisi.jpg",
"telephone": "0755-12345679",
"english_name": "johnchan",
"extattr": {"attrs":[{"name":"爱好","value":"运动"}]}
}
]
}
其中,userlist为成员列表。
五、获取应用名单
企业可以通过API接口获取当前企业使用的应用列表。获取方法如下:
GET https://qyapi.weixin.qq.com/cgi-bin/agent/list?access_token=ACCESS_TOKEN
返回结果如下:
{
"errcode": 0,
"errmsg": "ok",
"agentlist": [
{
"agentid": 1,
"name": "企业微信",
"square_logo_url": "http://www.qqserver.com/images/icon.jpg",
"description": "办公自动化平台",
"allow_userinfos": {
"user": [
{"userid": "zhangsan"},
{"userid": "lisi"}
]
},
"allow_partys": {
"partyid": [1, 2]
},
"allow_tags": {
"tagid": [1, 2]
},
"close": 0,
"redirect_domain": "www.qqclient.com"
}
]
}
其中,agentlist为应用列表。
总结
本文从获取Access Token、发送文本消息、上传临时素材、获取部门成员、获取应用名单等多个方面对企业微信API接口文档进行了详细的阐述。开发者可以根据实际需求选择相应的API接口,与企业微信进行交互。