Files
abot/gewechat/call_back_message/Gewechat.md
2025-04-22 15:04:00 +08:00

4617 lines
153 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Gewechat
language_tabs:
- shell: Shell
- http: HTTP
- javascript: JavaScript
- ruby: Ruby
- python: Python
- php: PHP
- java: Java
- go: Go
toc_footers: []
includes: []
search: true
code_clipboard: true
highlight_theme: darkula
headingLevel: 2
generator: "@tarslib/widdershins v4.0.30"
---
# Gewechat
Base URLs:
# Authentication
# 基础API/登录模块
## POST 获取登录二维码(步骤2)
POST /login/getLoginQrCode
- appId参数为设备ID首次登录传空会自动触发创建设备掉线后重新登录则必须传接口返回的appId注意**同一个号避免重复创建设备**,以免触发官方风控
- **取码时传的appId需要与上次登录扫码的微信一致否则会导致登录失败**
- 响应结果中的qrImgBase64为微信二维码图片的base64前端需要**将二维码图片展示给用户并进行手机扫码操作**PS: **扫码后调用步骤2手机上才显示登录**或使用响应结果中的qrData生成二维码
> Body 请求参数
```json
{
"appId": "{{appid}}"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID首次登录传空之后传接口返回的appId|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"appId": "wx_wR_U4zPj2M_OTS3BCyoE4",
"qrData": "http://weixin.qq.com/x/4dmHZZMtoLbHoLZwd1wE",
"qrImgBase64": "data:image/jpg;base64,XXX",
"uuid": "4dmHZZMtoLbHoLZwd1wE"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||响应数据|
|»» qrData|string|true|none||二维码内包含的信息(可用二维码生成工具结合值生成可扫描的微信二维码)|
|»» appId|string|true|none||设备ID|
|»» qrImgBase64|string|true|none||二维码图片base64|
|»» uuid|string|true|none||二维码的uuid|
## POST 获取Token(步骤1)
POST /tools/getTokenId
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": ""
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|string|true|none||token|
## POST 执行登录(步骤3)
POST /login/checkLogin
- 获取到登录二维码后需每间隔5s调用本接口来判断是否登录成功
- 新设备登录平台,次日凌晨会掉线一次,重新登录时需调用[获取二维码且传appId取码](/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794502),登录成功后则可以长期在线
- 登录成功后请保存appId与wxid的对应关系后续接口中会用到
> Body 请求参数
```json
{
"appId": "{{appid}}",
"uuid": "IZDexGAEu9_6JkDX0pX-"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» uuid|body|string| 是 |取码返回的uuid|
|» captchCode|body|string| 是 |扫码后手机提示输入的验证码|
> 返回示例
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"uuid": "AZ0yN8d1wJmiNfQBKFgu",
"headImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/ZYUmcl1UNzyB2onM08Ij901TaUOLIjHj2UicK3XGDsjEWl4XgQN5IjodunHicBVsZiaZc1iaGCRfluAxkzyibbiau3WBfFj2nprzKp2KryicMjGIvDbWOQGmibwVK648a3o4A8hD/0",
"nickName": "G",
"expiredTime": 225,
"status": 1,
"loginInfo": null
}
}
```
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"uuid": "4YHmGvoXvgmS1MqWVtQ2",
"headImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/ZYUmcl1UNzyB2onM08Ij901TaUOLIjHj2UicK3XGDsjEWl4XgQN5IjodunHicBVsZiaZc1iaGCRfluAxkzyibbiau3WBfFj2nprzKp2KryicMjGIvDbWOQGmibwVK648a3o4A8hD/0",
"nickName": "G",
"expiredTime": 230,
"status": 2,
"loginInfo": {
"uin": 4077276085,
"wxid": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"mobile": "17114312382",
"alias": null
}
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||响应数据|
|»» uuid|string|true|none||二维码的uuid|
|»» headImgUrl|string|true|none||头像地址|
|»» nickName|string|true|none||昵称|
|»» expiredTime|integer|true|none||二维码超时时间|
|»» status|integer|true|none||状态|
|»» loginInfo|object|true|none||登录成功信息|
|»»» uin|integer|true|none||uin|
|»»» wxid|string|true|none||微信ID返回此值则是登录成功|
|»»» nickName|string|true|none||昵称|
|»»» mobile|string|true|none||绑定的手机号|
|»»» alias|string|true|none||微信号|
## POST 设置消息回调地址
POST /tools/setCallback
> Body 请求参数
```json
{
"token": "{{gewe-token}}",
"callbackUrl": "http://www.baidu.com"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» token|body|string| 是 |token|
|» callbackUrl|body|string| 是 |回调接收地址|
> 返回示例
```json
{
"ret": 200,
"msg": "操作成功"
}
```
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"uuid": "4YHmGvoXvgmS1MqWVtQ2",
"headImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/ZYUmcl1UNzyB2onM08Ij901TaUOLIjHj2UicK3XGDsjEWl4XgQN5IjodunHicBVsZiaZc1iaGCRfluAxkzyibbiau3WBfFj2nprzKp2KryicMjGIvDbWOQGmibwVK648a3o4A8hD/0",
"nickName": "G",
"expiredTime": 230,
"status": 2,
"loginInfo": {
"uin": 4077276085,
"wxid": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"mobile": "17114312382",
"alias": null
}
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 查看设备列表
POST /login/deviceList
> Body 请求参数
```json
{}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
> 返回示例
```json
{
"ret": 200,
"msg": "操作成功",
"data": [
"wx_YQFamjNEfV1LFFl9TRYVb"
]
}
```
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"uuid": "4YHmGvoXvgmS1MqWVtQ2",
"headImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/ZYUmcl1UNzyB2onM08Ij901TaUOLIjHj2UicK3XGDsjEWl4XgQN5IjodunHicBVsZiaZc1iaGCRfluAxkzyibbiau3WBfFj2nprzKp2KryicMjGIvDbWOQGmibwVK648a3o4A8hD/0",
"nickName": "G",
"expiredTime": 230,
"status": 2,
"loginInfo": {
"uin": 4077276085,
"wxid": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"mobile": "17114312382",
"alias": null
}
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[string]|true|none||none|
# 基础API/联系人模块
## POST 获取通讯录列表
POST /contacts/fetchContactsList
- 本接口为长耗时接口,耗时时间根据好友数量递增,若接口返回超时可通过[获取通讯录列表缓存接口](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794505)获取响应结果
- 本接口返回的群聊仅为[保存到通讯录中的群聊](https://zhidao.baidu.com/question/144774265918920605/answer/4326874247.html),若想获取会话列表中的所有群聊,需要通过[消息订阅](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196884570)做二次处理。原因:当未获取的群有成员在群内发消息的话会有消息回调, 开发者此刻调用[获取群详情接口](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794513)查询群信息入库保存即可,比如说手机上三年前不说话的群,侧滑删除了,用户手机上也不会看到被删除的群聊的 但是有群成员说了话他会显示原理就是各个终端Android、IOS、桌面版微信取得了消息回调又去获取群详情信息本地数据库缓存了下来显示的手机群聊让用户感知的。
> Body 请求参数
```json
{
"appId": "{{appid}}"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"friends": [
"tmessage",
"medianote",
"qmessage",
"qqmail",
"wxid_910acevfm2nb21",
"qqsafe",
"wxid_9299552988412",
"weixin",
"exmail_tool",
"wxid_mp05xmje0ctn22",
"wxid_09oq4f4j4wg912",
"wxid_6bfguz79h8n122",
"wxid_lyuq4hr4lrjq22",
"wxid_a1zqyljsrsdu12",
"wxid_lv3pb3zhna3522",
"wxid_k2biq6fuinsr22",
"wxid_ujredjhxz9y712",
"wxid_uwb7989u0jea12",
"wxid_in46ey732vxu12",
"wxid_3rvervwohj6921",
"wxid_4wkls7tu62ua12",
"wxid_g0bdknnotx2f12",
"wxid_ce5fgp0icb3y21",
"wxid_1482424825211",
"wxid_vw3p4f6jy7bm12",
"wxid_o2m8xm71c23522",
"wxid_bclqpc2ho6o412",
"wxid_98pjjzpiisi721",
"wxid_noq2wsn5c8h222"
],
"chatrooms": [
"2180313478@chatroom",
"14358945067@chatroom",
"17362526147@chatroom",
"11685224357@chatroom",
"17522822550@chatroom"
],
"ghs": [
"gh_7aac992b0363",
"gh_d7293b5f14f4",
"gh_f51ce3ef83a4",
"gh_7d20df86e26b",
"gh_69bfb92a3e43"
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» friends|[string]|true|none||好友的wxid|
|»» chatrooms|[string]|true|none||保存到通讯录中群聊的ID|
|»» ghs|[string]|true|none||关注的公众号ID|
## POST 获取通讯录列表缓存
POST /contacts/fetchContactsListCache
通讯录列表数据缓存10分钟超时则需要重新调用[获取通讯录列表接口](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794504)
> Body 请求参数
```json
{
"appId": "{{appid}}"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 搜索好友
POST /contacts/search
搜索的联系人信息若已经是好友响应结果的v3则为好友的wxid
本接口返回的数据可通过[添加联系人接口](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794507)发送添加好友请求
> Body 请求参数
```json
{
"appId": "{{appid}}",
"contactsInfo": "zhangch"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» contactsInfo|body|string| 是 |搜索的联系人信息,微信号、手机号...|
> 返回示例
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"v3": "v3_020b3826fd030100000000006c20217514f7f2000000501ea9a3dba12f95f6b60a0536a1adb690dcccc9bf58cc80765e6eb16bc2678a36a0ed264e1b22596f787de6acc71a4beb20b69ab88bfd6d71aa1858b3@stranger",
"nickName": "zhang",
"sex": 1,
"signature": "学习、成长、锻炼",
"bigHeadImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/yoYJGtDmGicz9QGOFRb71Ns6onQO63bnfJibicBwEmO73m18N7BicrGzeYsdxOrUf5qwJq9mMaQbDwEBA92uPOuibZg/0",
"smallHeadImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/yoYJGtDmGicz9QGOFRb71Ns6onQO63bnfJibicBwEmO73m18N7BicrGzeYsdxOrUf5qwJq9mMaQbDwEBA92uPOuibZg/132",
"v4": "v4_000b708f0b04000001000000000056d3690365e0eefe00ef467a8e651000000050ded0b020927e3c97896a09d47e6e9ec65e1f9d32b06f86df4790587a6308149b3c8a90185e824efccd5b41bd75f6240ab020f9dd4b5915a083c6784a5cfcb806f53ca340b4c95b24f474d6e3fc0661301b3b3b741aac3eb5@stranger"
}
}
```
```json
{
"ret": 500,
"msg": "搜索联系人失败",
"data": {
"code": "-4",
"msg": "用户不存在"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» v3|string|true|none||搜索好友的v3添加好友时使用|
|»» nickName|string|true|none||搜索好友的昵称|
|»» sex|integer|true|none||搜索好友的性别|
|»» signature|null|true|none||搜索好友的签名|
|»» bigHeadImgUrl|string|true|none||搜索好友的大尺寸头像|
|»» smallHeadImgUrl|string|true|none||搜索好友的小尺寸头像|
|»» v4|string|true|none||搜索好友的v4添加好友时使用|
## POST 添加联系人/同意添加好友
POST /contacts/addContacts
本接口建议在线3天后再进行调用。
好友添加成功后会通过回调消息推送一条包含v3的消息可用于判断好友是否添加成功。
> Body 请求参数
```json
{
"appId": "{{appid}}",
"scene": 3,
"content": "hallo",
"v4": "v4_000b708f0b04000001000000000054a9e826263634356493c57b8e651000000050ded0b020927e3c97896a09d47e6e9e455d674c2544e251e77c7cba08cc6cef8f7df9e52d2bd4a3cef771c8661331fa1939fbe54f4e479d6d9d4522d70aeba057ffd0dd82398730da44ee57332a7bdea4862304d4799758ba@stranger",
"v3": "v3_020b3826fd030100000000003a070e7757675c000000501ea9a3dba12f95f6b60a0536a1adb690dcccc9bf58cc80765e6eb16bffa5996420bb1b2577634516ff82090419d8bdcd5689df8dfb21d40af93d286f72c3a0e8cfa6dcb68afed39226f008c6@stranger",
"option": 2
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» scene|body|integer| 是 |添加来源同意添加好友时传回调消息xml中的scene值。|
|» option|body|integer| 是 |操作类型2添加好友 3同意好友 4拒绝好友|
|» v3|body|string| 是 |通过搜索或回调消息获取到的v3|
|» v4|body|string| 是 |通过搜索或回调消息获取到的v4|
|» content|body|string| 是 |添加好友时的招呼语|
#### 详细说明
**» scene**: 添加来源同意添加好友时传回调消息xml中的scene值。
添加好友时的枚举值如下:
3 :微信号搜索
4 QQ好友
8 :来自群聊
15手机号
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 删除好友
POST /contacts/deleteFriend
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxid": "wxid_phyyedw9xap22"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxid|body|string| 是 |删除好友的wxid|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 上传手机通讯录
POST /contacts/uploadPhoneAddressList
> Body 请求参数
```json
{
"appId": "{{appid}}",
"phones": [
"18616561632",
"18134173174"
],
"opType": 1
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» phones|body|[string]| 是 |需要上传的手机号|
|» opType|body|integer| 是 |操作类型1:上传 2:删除|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 获取群/好友简要信息
POST /contacts/getBriefInfo
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxids": [
"wxid_phyyedw9xap22"
]
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxids|body|[string]| 是 |好友的wxid|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "获取联系人信息成功",
"data": [
{
"userName": "wxid_phyyedw9xap22",
"nickName": "Ashley",
"pyInitial": "ASHLEY",
"quanPin": "Ashley",
"sex": 2,
"remark": "",
"remarkPyInitial": "",
"remarkQuanPin": "",
"signature": null,
"alias": "zero-one_200906",
"snsBgImg": null,
"country": "AD",
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/buiaXybHTBK3BuGr1edN72zBDermWVFJ7YC8Jib2RcCSdiauAtZcPgUQpdhE9KY5NsumDAWD16fsg3A6OKuhdEr97VAHdTGgk6R1Eibuj7ZNwJ4/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/buiaXybHTBK3BuGr1edN72zBDermWVFJ7YC8Jib2RcCSdiauAtZcPgUQpdhE9KY5NsumDAWD16fsg3A6OKuhdEr97VAHdTGgk6R1Eibuj7ZNwJ4/132",
"description": null,
"cardImgUrl": null,
"labelList": "",
"province": "",
"city": "",
"phoneNumList": null
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» userName|string|false|none||none|
|»» nickName|string|false|none||none|
|»» pyInitial|string|false|none||none|
|»» quanPin|string|false|none||none|
|»» sex|integer|false|none||none|
|»» remark|string|false|none||none|
|»» remarkPyInitial|string|false|none||none|
|»» remarkQuanPin|string|false|none||none|
|»» signature|null|false|none||none|
|»» alias|string|false|none||none|
|»» snsBgImg|null|false|none||none|
|»» country|string|false|none||none|
|»» bigHeadImgUrl|string|false|none||none|
|»» smallHeadImgUrl|string|false|none||none|
|»» description|null|false|none||none|
|»» cardImgUrl|null|false|none||none|
|»» labelList|string|false|none||none|
|»» province|string|false|none||none|
|»» city|string|false|none||none|
|»» phoneNumList|null|false|none||none|
## POST 获取群/好友详细信息
POST /contacts/getDetailInfo
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxids": [
"yc-081726"
]
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxids|body|[string]| 是 |好友的wxid|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "获取联系人信息成功",
"data": [
{
"userName": "wxid_phyyedw9xap22",
"nickName": "Ashley",
"pyInitial": null,
"quanPin": "Ashley",
"sex": 2,
"remark": null,
"remarkPyInitial": null,
"remarkQuanPin": null,
"signature": "山林不向四季起誓 枯荣随缘。",
"alias": "zero-one_200906",
"snsBgImg": "http://shmmsns.qpic.cn/mmsns/UaAfqYic92wm7ZCrsEwlQMXSmBLs8dpwBzrXnrOyyP3B8bDibCCFInJ9PicC9LPYY17uWH1yIOmBYQ/0",
"country": "AD",
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/buiaXybHTBK3BuGr1edN72zBDermWVFJ7YC8Jib2RcCSdiauAtZcPgUQpdhE9KY5NsumDAWD16fsg3A6OKuhdEr97VAHdTGgk6R1Eibuj7ZNwJ4/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/buiaXybHTBK3BuGr1edN72zBDermWVFJ7YC8Jib2RcCSdiauAtZcPgUQpdhE9KY5NsumDAWD16fsg3A6OKuhdEr97VAHdTGgk6R1Eibuj7ZNwJ4/132",
"description": null,
"cardImgUrl": null,
"labelList": null,
"province": null,
"city": null,
"phoneNumList": null
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» userName|string|false|none||好友的wxid|
|»» nickName|string|false|none||好友的昵称|
|»» pyInitial|null|false|none||好友昵称的拼音首字母|
|»» quanPin|string|false|none||好友昵称的全拼|
|»» sex|integer|false|none||好友的性别|
|»» remark|null|false|none||好友备注|
|»» remarkPyInitial|null|false|none||好友备注的拼音首字母|
|»» remarkQuanPin|null|false|none||好友备注的全拼|
|»» signature|string|false|none||好友的签名|
|»» alias|string|false|none||好友的微信号|
|»» snsBgImg|string|false|none||朋友圈背景图链接|
|»» country|string|false|none||国家|
|»» bigHeadImgUrl|string|false|none||大尺寸头像链接|
|»» smallHeadImgUrl|string|false|none||小尺寸头像链接|
|»» description|null|false|none||好友的描述|
|»» cardImgUrl|null|false|none||好友描述的图片链接|
|»» labelList|null|false|none||好友的标签ID|
|»» province|null|false|none||省份|
|»» city|null|false|none||城市|
|»» phoneNumList|null|false|none||好友的手机号码|
## POST 设置好友仅聊天
POST /contacts/setFriendPermissions
设置完好友仅聊天后若发现手机展示不是设置的结果,可能是手机缓存未刷新,重新进入页面刷新查看
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxid": "wxid_phyyedw9xap22",
"onlyChat": true
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxid|body|string| 是 |好友的wxid|
|» onlyChat|body|boolean| 是 |设置好友是否仅聊天|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "设置好友权限成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 设置好友备注
POST /contacts/setFriendRemark
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxid": "wxid_phyyedw9xap22",
"remark": "备注"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxid|body|string| 是 |好友的wxid|
|» remark|body|string| 是 |备注的备注|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "设置好友权限成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 获取手机通讯录
POST /contacts/getPhoneAddressList
> Body 请求参数
```json
{
"appId": "{{appid}}",
"phones": []
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» phones|body|[string]| 否 |获取哪些手机号的好友详情,不传获取所有|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "获取手机通讯录成功",
"data": [
{
"userName": "wxid_ddgsghdfafaphh22",
"v4": null,
"nickName": null,
"sex": 1,
"phoneMd5": "d36f4cc1c8bca1ef41b93d2215133cdb",
"signature": "......",
"alias": null,
"country": "CN",
"bigHeadImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/vwGdLRK5jtpXagA7dfXlUiaU9VayWNSqia1c2Wib7icJNhPd6WHhqMIVuYuNDfEqPRC2TnmlRSkfYrib9fHyYONwdccv17gibCls7ia8elaunvgMmYicAw22wUJQ3CDw0Cm5ibrOT/0",
"smallHeadImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/vwGdLRK5jtpXagA7dfXlUiaU9VayWNSqia1c2Wib7icJNhPd6WHhqMIVuYuNDfEqPRC2TnmlRSkfYrib9fHyYONwdccv17gibCls7ia8elaunvgMmYicAw22wUJQ3CDw0Cm5ibrOT/132",
"province": "Jiangsu",
"city": "Xuzhou",
"personalCard": 0
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» userName|string|false|none||none|
|»» v4|null|false|none||none|
|»» nickName|null|false|none||none|
|»» sex|integer|false|none||none|
|»» phoneMd5|string|false|none||none|
|»» signature|string|false|none||none|
|»» alias|null|false|none||none|
|»» country|string|false|none||none|
|»» bigHeadImgUrl|string|false|none||none|
|»» smallHeadImgUrl|string|false|none||none|
|»» province|string|false|none||none|
|»» city|string|false|none||none|
|»» personalCard|integer|false|none||none|
# 基础API/群模块
## POST 创建微信群
POST /group/createChatroom
创建微信群时最少要选择两位微信好友
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxids": [
"wxid_0xsqb3o0tsvz22",
"wxid_phyyedw9xap22"
]
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxids|body|[string]| 是 |好友的wxid列表|
> 返回示例
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"headImgBase64": "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",
"chatroomId": "34757816141@chatroom"
}
}
```
```json
{
"ret": 500,
"msg": "创建群聊失败",
"data": {
"code": "0",
"msg": "MemberList are wrong"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» headImgBase64|string|true|none||群头像的base64图片|
|»» chatroomId|string|true|none||群ID|
## POST 修改群名称
POST /group/modifyChatroomName
修改完群名称后若发现手机未展示修改后的名称,可能是手机缓存未刷新,手机聊天框多切换几次会刷新。
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomName": "GeWe test",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomName|body|string| 是 |群名称|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 修改群备注
POST /group/modifyChatroomRemark
群备注仅自己可见
修改完群备注后若发现手机未展示修改后的备注,可能是手机缓存未刷新,手机聊天框多切换几次会刷新。
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomRemark": "GeWe test private",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomRemark|body|string| 是 |群备注|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 修改我在群内的昵称
POST /group/modifyChatroomNickNameForSelf
> Body 请求参数
```json
{
"appId": "{{appid}}",
"nickName": "廖静",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» nickName|body|string| 是 |群昵称|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 邀请/添加 进群
POST /group/inviteMember
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxids": "wxid_8pvka4jg6qzt22",
"chatroomId": "34757816141@chatroom",
"reason": ""
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxids|body|string| 是 |邀请进群的好友wxid多个英文逗号分隔|
|» chatroomId|body|string| 是 |群ID|
|» reason|body|string| 是 |邀请进群的说明|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 删除群成员
POST /group/removeMember
> Body 请求参数
```json
{
"appId": "{{appid}}",
"wxids": "wxid_8pvka4jg6qzt22",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» wxids|body|string| 是 |删除的群成员wxid多个英文逗号分隔|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 退出群聊
POST /group/quitChatroom
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "21425161836@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 解散群聊
POST /group/disbandChatroom
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "21425161836@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 获取群信息
POST /group/getChatroomInfo
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"chatroomId": "34757816141@chatroom",
"nickName": "GeWe test",
"pyInitial": "GEWETEST",
"quanPin": "GeWetest",
"sex": 0,
"remark": "GeWe test private",
"remarkPyInitial": "GEWETESTPRIVATE",
"remarkQuanPin": "GeWetestprivate",
"chatRoomNotify": 1,
"chatRoomOwner": "zhangchuan2288",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmcrhead/PiajxSqBRaEJEIII6n6NUHudK1r5a29cMDlW0Ef7b1ibzksfrwIcRkTicPRoWm7Km3ZQIpq8xp65nD6yUm8BHxzqhV1ic1jQvvnv/0",
"memberList": [
{
"wxid": "zhangchuan2288",
"nickName": "朝夕。",
"inviterUserName": null,
"memberFlag": 1,
"displayName": null,
"bigHeadImgUrl": null,
"smallHeadImgUrl": null
},
{
"wxid": "wxid_phyyedw9xap22",
"nickName": "Ashley",
"inviterUserName": "zhangchuan2288",
"memberFlag": 1,
"displayName": null,
"bigHeadImgUrl": null,
"smallHeadImgUrl": null
},
{
"wxid": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"inviterUserName": "zhangchuan2288",
"memberFlag": 1,
"displayName": null,
"bigHeadImgUrl": null,
"smallHeadImgUrl": null
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» chatroomId|string|true|none||群ID|
|»» nickName|string|true|none||群名称|
|»» pyInitial|string|true|none||群名称的拼音首字母|
|»» quanPin|string|true|none||群名称的全拼|
|»» sex|integer|true|none||none|
|»» remark|string|true|none||群备注,仅自己可见|
|»» remarkPyInitial|string|true|none||群备注的拼音首字母|
|»» remarkQuanPin|string|true|none||群备注的全拼|
|»» chatRoomNotify|integer|true|none||群消息是否提醒|
|»» chatRoomOwner|string|true|none||群主的wxid|
|»» smallHeadImgUrl|string|true|none||群头像链接|
|»» memberList|[object]|true|none||群成员列表|
|»»» wxid|string|true|none||群成员的wxid|
|»»» nickName|string|true|none||群成员的昵称|
|»»» inviterUserName|string¦null|true|none||邀请人的wxid|
|»»» memberFlag|integer|true|none||标识|
|»»» displayName|null|true|none||在本群内的昵称|
|»»» bigHeadImgUrl|null|true|none||大尺寸头像|
|»»» smallHeadImgUrl|null|true|none||小尺寸头像|
## POST 获取群成员列表
POST /group/getChatroomMemberList
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"memberList": [
{
"wxid": "zhangchuan2288",
"nickName": "朝夕。",
"inviterUserName": null,
"memberFlag": 1,
"displayName": null,
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/T0MtLBu618rUlZqaAiaWfucmVibiawiciaSibPfz11siaLZr0qSxQTAR9lu7YicDwYAHNia1je79icxul6bzQ4LLZopiaM9EdYAEublPCLV29QKLv26ictBHjWsWnE0lvYGjibB9DkE6q/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/T0MtLBu618rUlZqaAiaWfucmVibiawiciaSibPfz11siaLZr0qSxQTAR9lu7YicDwYAHNia1je79icxul6bzQ4LLZopiaM9EdYAEublPCLV29QKLv26ictBHjWsWnE0lvYGjibB9DkE6q/132"
},
{
"wxid": "wxid_phyyedw9xap22",
"nickName": "Ashley",
"inviterUserName": "zhangchuan2288",
"memberFlag": 1,
"displayName": null,
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/5ibSibfNKwpv0TLLuSFv2hibEBqShib4BKsaxHZ2v10y9F93ibO5lK4bwib47qtuwsLZD8HY7fVicibWlWvehCLDCdicy38NaIbVupuMZMDwiaXozjUhk/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/5ibSibfNKwpv0TLLuSFv2hibEBqShib4BKsaxHZ2v10y9F93ibO5lK4bwib47qtuwsLZD8HY7fVicibWlWvehCLDCdicy38NaIbVupuMZMDwiaXozjUhk/132"
},
{
"wxid": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"inviterUserName": "zhangchuan2288",
"memberFlag": 2049,
"displayName": "G1",
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/FMkteDauMN35F3lhfavibDYpGibfHqrsMICtqBbWDfwfQOnIYfgHBpOJLLbac0Wf3odowXcePFHMzj954EeFOiaKcsgIaMedw5KWZhBpaLsFfSK5HNAE7AQODQ1FfrPiaTCh/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/FMkteDauMN35F3lhfavibDYpGibfHqrsMICtqBbWDfwfQOnIYfgHBpOJLLbac0Wf3odowXcePFHMzj954EeFOiaKcsgIaMedw5KWZhBpaLsFfSK5HNAE7AQODQ1FfrPiaTCh/132"
},
{
"wxid": "wxid_8pvka4jg6qzt22",
"nickName": "白开水加糖",
"inviterUserName": "wxid_phyyedw9xap22",
"memberFlag": 2049,
"displayName": null,
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/3d34Q9DWL6pHiaASIBMIG3J9deRhwz4yKpZxGibDqiaRGmF6XckV0VSeRTGHSTq55bSwK1qF4Sy1JVXIkB7tYHpR4qPh3ECcodpkqRQjSwKUa4/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/3d34Q9DWL6pHiaASIBMIG3J9deRhwz4yKpZxGibDqiaRGmF6XckV0VSeRTGHSTq55bSwK1qF4Sy1JVXIkB7tYHpR4qPh3ECcodpkqRQjSwKUa4/132"
}
],
"chatroomOwner": "zhangchuan2288",
"adminWxid": [
"wxid_8pvka4jg6qzt22"
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» memberList|[object]|true|none||群成员列表|
|»»» wxid|string|true|none||群成员的wxid|
|»»» nickName|string|true|none||群成员昵称|
|»»» inviterUserName|string¦null|true|none||邀请人的wxid|
|»»» memberFlag|integer|true|none||标识|
|»»» displayName|string¦null|true|none||在本群内的昵称|
|»»» bigHeadImgUrl|string|true|none||大尺寸头像|
|»»» smallHeadImgUrl|string|true|none||小尺寸头像|
|»» chatroomOwner|null|true|none||群主的wxid|
|»» adminWxid|null|true|none||管理的wxid|
## POST 获取群成员详情
POST /group/getChatroomMemberDetail
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"memberWxids": [
"wxid_0xsqb3o0tsvz22",
"wxid_phyyedw9xap22"
]
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» memberWxids|body|[string]| 是 |none|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": [
{
"userName": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"pyInitial": "G",
"quanPin": "G",
"sex": 0,
"remark": null,
"remarkPyInitial": null,
"remarkQuanPin": null,
"chatRoomNotify": 0,
"signature": null,
"alias": null,
"snsBgImg": "http://shmmsns.qpic.cn/mmsns/s5BUfupeMYsJx3WHf6RyTxAqLUpGZPsgD9l68D5iaf7qibkcjz08RwNwDxj9ToFvnaicFD2X8CtPe4/0",
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/tmlG7SpZJMJEh0dA14icl4CWnliaI8pKvVicEMaowRywgVpljBK3nmBib0jHG4eVo5hiaqS7Gg0p7GwCuHopGYqdNBu9WVtxMB8icSFGUjibCDPoGXicPic1r3gx3PQ4YMf3GPfXj/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/tmlG7SpZJMJEh0dA14icl4CWnliaI8pKvVicEMaowRywgVpljBK3nmBib0jHG4eVo5hiaqS7Gg0p7GwCuHopGYqdNBu9WVtxMB8icSFGUjibCDPoGXicPic1r3gx3PQ4YMf3GPfXj/132",
"description": null,
"cardImgUrl": null,
"labelList": null,
"country": "CN",
"province": "Guangdong",
"city": "Foshan",
"phoneNumList": null,
"friendUserName": "wxid_0xsqb3o0tsvz22",
"inviterUserName": "zhangchuan2288",
"memberFlag": 0
},
{
"userName": "wxid_phyyedw9xap22",
"nickName": "Ashley",
"pyInitial": "ASHLEY",
"quanPin": "Ashley",
"sex": 2,
"remark": "小号",
"remarkPyInitial": "XH",
"remarkQuanPin": "xiaohao",
"chatRoomNotify": 0,
"signature": "山林不向四季起誓 枯荣随缘。",
"alias": "zero-one_200906",
"snsBgImg": "http://shmmsns.qpic.cn/mmsns/UaAfqYic92wm7ZCrsEwlQMXSmBLs8dpwBzrXnrOyyP3B8bDibCCFInJ9PicC9LPYY17uWH1yIOmBYQ/0",
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/buiaXybHTBK3BuGr1edN72zBDermWVFJ7YC8Jib2RcCSdiauAtZcPgUQpdhE9KY5NsumDAWD16fsg3A6OKuhdEr97VAHdTGgk6R1Eibuj7ZNwJ4/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/buiaXybHTBK3BuGr1edN72zBDermWVFJ7YC8Jib2RcCSdiauAtZcPgUQpdhE9KY5NsumDAWD16fsg3A6OKuhdEr97VAHdTGgk6R1Eibuj7ZNwJ4/132",
"description": null,
"cardImgUrl": null,
"labelList": "27",
"country": "AD",
"province": null,
"city": null,
"phoneNumList": [
"\n\u000b14752126220"
],
"friendUserName": "wxid_phyyedw9xap22",
"inviterUserName": null,
"memberFlag": null
}
]
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|[object]|true|none||none|
|»» userName|string|true|none||群成员的wxid|
|»» nickName|string|true|none||群成员的昵称|
|»» pyInitial|string|true|none||群成员昵称的拼音首字母|
|»» quanPin|string|true|none||群成员昵称的全拼|
|»» sex|integer|true|none||性别|
|»» remark|string¦null|true|none||备注|
|»» remarkPyInitial|string¦null|true|none||备注的拼音首字母|
|»» remarkQuanPin|string¦null|true|none||备注的全拼|
|»» chatRoomNotify|integer|true|none||消息通知|
|»» signature|string¦null|true|none||签名|
|»» alias|string¦null|true|none||微信号|
|»» snsBgImg|string|true|none||朋友圈背景图链接|
|»» bigHeadImgUrl|string|true|none||大尺寸头像|
|»» smallHeadImgUrl|string|true|none||小尺寸头像|
|»» description|null|true|none||描述|
|»» cardImgUrl|null|true|none||描述的图片链接|
|»» labelList|string¦null|true|none||标签列表,多个英文逗号分隔|
|»» country|string|true|none||国家|
|»» province|string¦null|true|none||省份|
|»» city|string¦null|true|none||城市|
|»» phoneNumList|[string]|true|none||手机号码|
|»» friendUserName|string|true|none||好友的wxid|
|»» inviterUserName|string¦null|true|none||邀请人的wxid|
|»» memberFlag|integer¦null|true|none||标识|
## POST 获取群公告
POST /group/getChatroomAnnouncement
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"announcement": "群公告哈",
"announcementEditor": "zhangchuan2288",
"publishTime": 1703839509
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» announcement|string|true|none||群公告内容|
|»» announcementEditor|string|true|none||群公告作者的wxid|
|»» publishTime|integer|true|none||群公告发布时间|
## POST 设置群公告
POST /group/setChatroomAnnouncement
仅群主或管理员可以发布群公告
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"content": "群公告哈"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» content|body|string| 是 |公告内容|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 同意进群
POST /group/agreeJoinRoom
> Body 请求参数
```json
{
"appId": "{{appid}}",
"url": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/addchatroombyinvite?ticket=A%2FtYjg2L%2FGB%2FHYqOwzWNMQ%3D%3D"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» url|body|string| 是 |邀请进群回调消息中的url|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"chatroomId": "19189253160@chatroom"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» chatroomId|string|true|none||群ID|
## POST 添加群成员为好友
POST /group/addGroupMemberAsFriend
添加群成员为好友,若对方关闭从群聊添加的权限则添加失败
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"content": "hallo",
"memberWxid": "wxid_phyyedw9xap22"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» memberWxid|body|string| 是 |群成员的wxid|
|» content|body|string| 是 |加好友的招呼语|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"v3": "v3_020b3826fd030100000000003a070e7757675c000000501ea9a3dba12f95f6b60a0536a1adb690dcccc9bf58cc80765e6eb16bffa5996420bb1b2577634516ff82090419d8bdcd5689df8dfb21d40af93d286f72c3a0e8cfa6dcb68afed39226f008c6@stranger"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» v3|string|true|none||添加群成员的v3通过好友后会通过回调消息返回此值|
## POST 获取群二维码
POST /group/getChatroomQrCode
### 注意
- 在新设备登录后的1-3天内无法使用本功能。在此期间如果尝试进行获取您将收到来自微信团队的提醒。请注意遵守相关规定。
- 生成的群二维码图片7天有效
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"qrBase64": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/wAALCAG4AbgBAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/AP1Tooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooor+Veiiiiiiv6qK/lXr+qiiiv5V6/qor+Vev6qKKKKK/lXoooooor+qiiiv5V6KK/qoor+Veiv6qKKK/lXr+qiv5V6KKKKKK/qoooooor+Vev6qKKKKK/lXr+qiiiv5V6KKKKKK/qor+Veiiiv6qKK/lXor+qiiv5V6K/qoor+Veiv6qKK/lXr+qiv5V6KK/qor+Vev6qKKKKK/lXr+qiiiiiiv5V6/qor+Veiiv6qK/lXr+qiiv5V6K/qoor+Veiiv6qK/lXor+qiv5V6/qoor+Veiv6qK/lXor+qiiv5V6/qor+Veiv6qKKKKK/lXor+qiv5V6/qor+Veiiv6qK/lXr+qiiiiiiv5V6/qor+Veiiv6qK/lXr+qiiv5V6K/qor+Veiiiv6qKK/lXor+qiiv5V6/qor+Veiiiv6qKK/lXr+qiiiiv5V6KK/qor+Vev6qKK/lXr+qiv5V6KK/qor+Vev6qKKKKKK/lXr+qiv5V6KK/qor+Vev6qK/lXr+qiiv5V6K/qooor+Veiiiv6qKK/lXoooor+qiv5V6KK/qor+Vev6qKK/lXoor+qiiiiv5V6/qor+Veiiv6qK/lXr+qiiiiiiv5V6/qooooor+Vev6qK/lXr+qiv5V6K/qoor+Vev6qK/lXr+qiiv5V6/qoor+Vev6qKKK/lXoor+qiv5V6KK/qoor+Veiv6qK/lXr+qiiiv5V6/qooooor+Vev6qKKKKKK/lXoooooor+qiv5V6/qor+Vev6qK/lXr+qiv5V6/qor+Vev6qK/lXr+qiv5V6/qor+Vev6qK/lXr+qiv5V6/qor+Vev6qK/lXr+qiv5V6/qor+Vev6qK/lXr+qiv5V6/qor+Vev6qK/lXoooooor+qiiiiiiiiiiiiiiiiiiiv5V6/qor+Veiiiv6qKKK/lXr+qiiiv5V6/qor+Veiv6qK/lXr+qiv5V6/qor+Veiv6qK/lXor+qiiiiiiiiiiiiiiiiv5V6KKKKKK/qor+Veiiv6qK/lXooooooor+qiv5V6KKKK/qoooooor+Veiv6qK/lXor+qiv5V6/qooor+Veiv6qKKK/lXr+qiiiiiiv5V6KKK/qor+Vev6qK/lXr+qiiv5V6/qor+Vev6qK/lXoor+qiv5V6K/qor+Veiiv6qKKK/lXr+qiv5V6KK/qooor+Veiiv6qKKK/lXor+qiiv5V6/qooooooooor+Vev6qK/lXoor+qiv5V6/qor+Veiiv6qKKK/lXoor+qiiiv5V6KKK/qor+Veiiv6qKK/lXr+qiiv5V6/qoor+Veiv6qKK/lXor+qiv5V6/qor+Veiiiv6qKKKKKKK/lXoor+qiv5V6/qooor+Vev6qKKKK/lXoor+qiiv5V6/qooooor+Vev6qKK/lXr+qiiv5V6/qoor+Veiiv6qKKK/lXooor+qiiiv5V6/qooooooor+Vev6qK/lXr+qiiv5V6K/qor+Vev6qK/lXoor+qiv5V6K/qor+Vev6qKKKK/lXr+qiiv5V6K/qor+Vev6qK/lXor+qiiv5V6KKK/qor+Veiv6qK/lXor+qiiiiv5V6/qoooooor+Vev6qK/lXoor+qiiiv5V6K/qor+Vev6qKKKK/lXor+qiiiiv5V6KKK/qooor+Veiv6qKKKKK/lXor+qiv5V6/qoor+Vev6qKKK/lXr+qiiiiiiiiv5V6K/qor+Vev6qK/lXoor+qiv5V6K/qor+Vev6qKKK/lXr+qiiv5V6/qor+Veiv6qK/lXoor+qiv5V6/qooooor+Veiiv6qKK/lXoor+qiiv5V6KKKK/qooooooor+Veiiv6qK/lXr+qiv5V6/qoooor+Veiv6qK/lXoor+qiv5V6K/qoor+Vev6qKKK/lXr+qiv5V6/qoooor+Veiiiiiiv6qK/lXr+qiv5V6/qor+Veiiv6qKKKKKK/lXr+qiv5V6/qoor+Veiiiv6qK/lXoooor+qiiv5V6K/qor+Veiiv6qK/lXor+qiiv5V6/qoor+Vev6qK/lXooor+qiv5V6/qoor+Veiv6qKK/lXr+qiiiiiiiiiv5V6/qooor+Vev6qKK/lXr+qiiiiv5V6K/qoor+Vev6qKKKKKK/lXr+qiiiiiv5V6/qoor+Vev6qK/lXr+qiv5V6KKK/qoor+Veiv6qK/lXor+qiiiiiiiiiv5V6/qor+Vev6qK/lXoor+qiiiv5V6K/qooooor+Veiiiiv6qK/lXor+qiiv5V6/qor+Vev6qKK/lXr+qiiiiiiiv5V6KKKK/qor+Veiv6qKKKKKKK/lXr+qiiv5V6/qooor+Vev6qK/lXr+qiv5V6/qor+Veiiiv6qK/lXoor+qiiv5V6K/qoor+Veiv6qK/lXoooor+qiv5V6KK/qoor+Veiiv6qKKKKKKKKKKKKKKK/lXoor+qiv5V6/qor+Vev6qKKKKKK/lXor+qiiv5V6K/qor+Vev6qKK/lXr+qiiv5V6/qoooor+Veiiiiv6qK/lXor+qiiv5V6K/qooooooooor+Vev6qK/lXor+qiiv5V6/qoor+Veiiv6qK/lXoor+qiv5V6KKK/qooor+Veiiiiv6qK/lXr+qiiv5V6K/qoooor+Veiv6qKK/lXr+qiiiiiiiiiv5V6KK/qor+Veiiiiiv6qKK/lXor+qiv5V6KKKK/qor+Veiiiiiv6qKK/lXr+qiv5V6/qoor+Vev6qKKK/lXr+qiv5V6KKKK/qor+Veiiv6qKKKKKKKK/lXoor+qiiiv5V6/qoor+Vev6qK/lXor+qiiiv5V6/qor+Vev6qK/lXr+qiiiv5V6/qooor+Vev6qKK/lXr+qiiv5V6/qoor+Veiv6qKKK/lXr+qiiiv5V6/qoooooooooor+Vev6qK/lXr+qiv5V6K/qoor+Veiv6qK/lXr+qiiv5V6/qoor+Veiv6qK/lXr+qiv5V6K/qor+Veiiv6qKKK/lXoor+qiiv5V6/qor+Vev6qK/lXoor+qiiiiiiiiiiiiv5V6/qooor+Veiiiv6qKKK/lXr+qiiv5V6KKKK/qooor+Vev6qKK/lXor+qiv5V6/qoor+Veiiv6qKK/lXr+qiiiv5V6KKKK/qooooooor+Veiiiiiiiiiv6qKK/lXr+qiv5V6/qor+Vev6qK/lXr+qiv5V6KKKKKK/qoor+Vev6qK/lXor+qiiiv5V6/qoor+Veiiiiiiv6qK/lXr+qiiiiiiv5V6/qooor+Veiv6qK/lXoor+qiv5V6/qor+Veiv6qKK/lXoor+qiv5V6/qor+Vev6qK/lXoor+qiiiiv5V6K/qooor+Veiv6qK/lXor+qiv5V6/qor+Vev6qK/lXor+qiiiiiiv5V6K/qor+Veiiiiv6qK/lXor+qiiiiv5V6K/qoor+Veiiiv6qK/lXor+qiiv5V6KKK/qor+Vev6qK/lXoor+qiv5V6KK/qoooor+Vev6qK/lXr+qiiiiiiv5V6KK/qoooor+Veiiv6qKK/lXoor+qiv5V6KKK/qooor+Vev6qKK/lXooooor+qiv5V6/qor+Vev6qK/lXr+qiiiv5V6/qor+Veiiv6qK/lXr+qiiiiiiiiiiiv5V6KKK/qor+Vev6qKKK/lXr+qiiv5V6/qooooor+Vev6qKK/lXor+qiv5V6K/qoor+Vev6qK/lXoooooooor+qiv5V6KK/qor+Vev6qKKKKKK/lXr+qiv5V6/qor+Veiv6qKKK/lXor+qiv5V6/qor+Veiv6qKK/lXr+qiv5V6KK/qoor+Veiiv6qK/lXr+qiiiiv5V6/qor+Vev6qKK/lXor+qiiv5V6K/qooooooooooooor+Vev6qK/lXor+qiiiiv5V6K/qor+Veiv6qKKK/lXr+qiiv5V6K/qoor+Vev6qK/lXooooooor+qiv5V6/qor+Veiiiiiiiiv6qKKKKKKKK/lXr+qiiiv5V6/qor+Veiiv6qK/lXr+qiv5V6/qoor+Vev6qKK/lXr+qiv5V6K/qor+Vev6qKK/lXooor+qiv5V6/qoooor+Vev6qKK/lXr+qiiv5V6/qooor+Vev6qKKKKKKKK/lXoor+qiv5V6KKKK/qor+Vev6qK/lXr+qiiiiiiv5V6KK/qooooor+Vev6qKK/lXoooor+qiiiiiv5V6K/qor+Veiv6qKK/lXr+qiiiiiiiv5V6KKK/qooooor+Vev6qK/lXr+qiv5V6KK/qooooor+Veiv6qK/lXr+qiv5V6/qor+Vev6qK/lXor+qiiiv5V6K/qooooor+Veiv6qKKKKKKKKKK/lXor+qiv5V6K/qor+Vev6qK/lXr+qiiiv5V6K/qor+Vev6qKKK/lXor+qiv5V6/qor+Vev6qKK/lXr+qiv5V6KK/qooor+Veiv6qK/lXoor+qiiv5V6/qor+Veiiv6qKKKKKKKKK/lXr+qiv5V6K/qor+Vev6qK/lXr+qiiiv5V6/qoooor+Veiv6qKK/lXr+qiiv5V6K/qoor+Veiv6qK/lXr+qiiv5V6KK/qoor+Vev6qKK/lXr+qiv5V6/qor+Vev6qKKKKKKKK/lXr+qiiiv5V6KK/qor+Vev6qK/lXoooor+qiiiiiv5V6K/qooor+Veiiv6qKK/lXr+qiiiiv5V6KKKKKKKK/qooor+Vev6qKKKKKKK/lXoor+qiiiv5V6KK/qooor+Vev6qKKK/lXoor+qiiiiiv5V6KKK/qor+Veiiiv6qK/lXr+qiiiiiv5V6/qor+Vev6qK/lXr+qiv5V6K/qoooooor+Veiiv6qKKK/lXor+qiv5V6K/qor+Vev6qKK/lXooor+qiiv5V6KKKKK/qoor+Veiv6qKKKK/lXoor+qiv5V6KKKKK/qooor+Vev6qKKKKKKKKKKKKKK/lXor+qiv5V6/qoor+Veiiiv6qKK/lXoor+qiiiv5V6K/qoor+Veiiiv6qK/lXor+qiiiv5V6/qooor+Vev6qKKKKKKKKKK/lXoooooor+qiv5V6/qoor+Vev6qK/lXor+qiiv5V6KKKKK/qor+Vev6qK/lXoooor+qiv5V6/qoor+Vev6qK/lXr+qiiv5V6/qor+Vev6qK/lXor+qiiv5V6/qoooooor+Vev6qKKKKK/lXr+qiv5V6/qooor+Vev6qKK/lXor+qiv5V6/qooor+Vev6qKKK/lXor+qiiv5V6/qor+Veiiiiiiiiv6qKKK/lXr+qiiv5V6K/qoooooor+Vev6qK/lXoor+qiv5V6/qor+Vev6qK/lXooor+qiv5V6/qor+Veiv6qKKK/lXoooor+qiiv5V6KK/qor+Vev6qK/lXooooooooor+qiv5V6/qor+Vev6qKKKKKK/lXr+qiv5V6KK/qor+Vev6qK/lXor+qiv5V6/qoooooor+Veiv6qK/lXor+qiiiiiv5V6KK/qor+Vev6qKK/lXr+qiv5V6/qor+Vev6qK/lXor+qiv5V6/qor+Veiiv6qKKKKKK/lXr+qiv5V6KK/qor+Vev6qK/lXr+qiv5V6KKKKKKK/qoor+Veiv6qK/lXor+qiv5V6K/qor+Vev6qKKK/lXor+qiv5V6KK/qor+Veiv6qK/lXr+qiiv5V6KK/qoooooor+Vev6qKKKKK/lXr+qiv5V6K/qoor+Vev6qKK/lXoor+qiv5V6K/qor+Vev6qKKKK/lXr+qiv5V6/qoor+Veiv6qK/lXor+qiiv5V6K/qor+Vev6qK/lXr+qiiiv5V6/qoooooor+Veiiiiiiv6qKK/lXr+qiiv5V6KK/qooor+Vev6qKK/lXoor+qiv5V6K/qoooor+Vev6qKKK/lXoor+qiiv5V6/qoooor+Veiiiv6qKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK//2Q==",
"qrTips": "该二维码7天内(1月5日前)有效,重新进入将更新"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» qrBase64|string|true|none||群二维码图片的base64|
|»» qrTips|string|true|none||群二维码的提示|
## POST 群保存到通讯录
POST /group/saveContractList
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"operType": 3
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» operType|body|integer| 是 |操作类型 3保存到通讯录 2从通讯录移除|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 管理员操作
POST /group/adminOperate
添加、删除群管理员,转让群主
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"operType": 1,
"wxids": [
"wxid_0xsqb3o0tsvz22"
]
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» operType|body|integer| 是 |操作类型 1添加群管理可添加多个微信号 2删除群管理可删除多个 3转让只能转让一个微信号|
|» wxids|body|[string]| 是 |none|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 聊天置顶
POST /group/pinChat
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"top": true
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» top|body|boolean| 是 |是否置顶|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 设置消息免打扰
POST /group/setMsgSilence
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"silence": true
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» silence|body|boolean| 是 |是否免打扰|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 扫码进群
POST /group/joinRoomUsingQRCode
qrUrl是通过解析群二维码图片获得的内容
> Body 请求参数
```json
{
"appId": "{{appid}}",
"qrUrl": "https://weixin.qq.com/g/AwYAALLELoeKLg-qWAtkYtBdyTg_i2TG22w1GS-cL1GFO9J4AemIyZAw7RSuIpZw"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» qrUrl|body|string| 是 |二维码的链接|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"chatroomName": "GeWe-test-room(2)",
"html": null,
"chatroomId": "34559815390@chatroom"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» chatroomName|string|true|none||群名称|
|»» html|null|true|none||none|
|»» chatroomId|string|true|none||群ID|
## POST 确认进群申请
POST /group/roomAccessApplyCheckApprove
群聊开启邀请确认后,有人申请进群时群主和管理员会收到进群申请,本接口用于确认进群申请
> Body 请求参数
```json
{
"appId": "{{appid}}",
"chatroomId": "34757816141@chatroom",
"msgContent": "<sysmsg type=\"NewXmlChatRoomAccessVerifyApplication\">\n\t<NewXmlChatRoomAccessVerifyApplication>\n\t\t<text> <![CDATA[\"Ashley\"想邀请1位朋友加入群聊]]></text>\n\t\t <link>\n\t\t\t<scene>roomaccessapplycheck_approve</scene>\n\t\t\t<text> <![CDATA[ 去确认]]></text>\n\t\t\t<ticket> <![CDATA[AwAAAAEAAAAVxQT9t2UOmpKWhJUViezAdSPKcaOLjP8JydTTWGHXiByZInpCp71HDoXAui/u7ByQVOutX93UlKBpkA2/3FoSAET1nA==]]> </ticket>\n\t\t\t<invitationreason> <![CDATA[进一下]]> </invitationreason>\n\t\t\t<inviterusername> <![CDATA[wxid_phyyedw9xap22]]> </inviterusername>\n\t\t\t<memberlist>\n\t\t\t\t<memberlistsize>1</memberlistsize>\n\t\t\t\t<member>\n\t\t\t\t\t<username> <![CDATA[wxid_8pvka4jg6qzt22]]> </username>\n\t\t\t\t\t<nickname> <![CDATA[白开水加糖]]> </nickname>\n\t\t\t\t\t<headimgurl> <![CDATA[http://wx.qlogo.cn/mmhead/ver_1/b6BQ3ibU4I5hDEtSyR1unAOaQMymjgk6gE9bUmteJUY6JAaJeMKJvibkLEia8PpbvuDo96bC5JKhydyLJWia7yTmahwwb0ZfjGZy9jMsibbQBVmU/96]]> </headimgurl>\n\t\t\t\t\t<quitchatroominfo> <![CDATA[曾被移出群聊,建议谨慎通过,]]> </quitchatroominfo>\n\t\t\t\t</member>\n\t\t\t</memberlist>\n\t\t</link>\n\t\t<RoomName> <![CDATA[34757816141@chatroom]]> </RoomName>\n\t</NewXmlChatRoomAccessVerifyApplication>\n</sysmsg>",
"newMsgId": "8866462780395237368"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» chatroomId|body|string| 是 |群ID|
|» newMsgId|body|string| 是 |消息ID|
|» msgContent|body|string| 是 |消息内容|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
# 基础API/消息模块
## POST 发送文字消息
POST /message/postText
#### 注意
在群内发送消息@某人时content中需包含@xxx
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "wxid_tdkou97nquqz22",
"ats": "wxid_phyyedw9xap22",
"content": "@猿猴 我在测试艾特内容"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» content|body|string| 是 |消息内容|
|» ats|body|string| 否 |@的好友,多个英文逗号分隔。群主或管理员@全部的人,则填写'notify@all'|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1703841160,
"msgId": 0,
"newMsgId": 3768973957878705000,
"type": 1
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送文件消息
POST /message/postFile
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"fileName": "a909.xls",
"fileUrl": "https://scrm-1308498490.cos.ap-shanghai.myqcloud.com/pkg/a909-99066ce80e03.xls?q-sign-algorithm=sha1&q-ak=AKIDmOkqfDUUDfqjMincBSSAbleGaeQv96mB&q-sign-time=1703841209;1703848409&q-key-time=1703841209;1703848409&q-header-list=&q-url-param-list=&q-signature=2a60b0f8d9169550cd83c4a3ca9cd18138b4bb88"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» fileUrl|body|string| 是 |文件链接|
|» fileName|body|string| 是 |文件名|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1703841225,
"msgId": 769523509,
"newMsgId": 4399037329770756000,
"type": 6
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送图片消息
POST /message/postImage
#### 注意
发送图片接口会返回cdn相关的信息如有需求同一张图片发送多次第二次及以后发送时可使用接口返回的cdn信息拼装xml调用[转发图片接口](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794551),这样可以缩短发送时间
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"imgUrl": "http://dummyimage.com/400x400"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» imgUrl|body|string| 是 |图片链接|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 0,
"msgId": 640355969,
"newMsgId": 8992614056172360000,
"type": null,
"aesKey": "7678796e6d70626e6b626c6f7375616b",
"fileId": "3052020100044b30490201000204e49785f102033d11fd0204136166b4020465966eea042437646265323234362d653662662d343464392d393363362d3139313661363863646266390204052418020201000400",
"length": 1096,
"width": 400,
"height": 400,
"md5": "e6355eab0393facbd6a2cde3f990ef60"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|null|true|none||消息类型|
|»» aesKey|string|true|none||cdn相关的aeskey|
|»» fileId|string|true|none||cdn相关的fileid|
|»» length|integer|true|none||图片文件大小|
|»» width|integer|true|none||图片宽度|
|»» height|integer|true|none||图片高度|
|»» md5|string|true|none||图片md5|
## POST 发送语音消息
POST /message/postVoice
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"voiceUrl": "https://scrm-1308498490.cos.ap-shanghai.myqcloud.com/pkg/response.silk?q-sign-algorithm=sha1&q-ak=AKIDmOkqfDUUDfqjMincBSSAbleGaeQv96mB&q-sign-time=1703841529;1703848729&q-key-time=1703841529;1703848729&q-header-list=&q-url-param-list=&q-signature=781831fe71ad4bbb582715bf197a9cf86ec80c97",
"voiceDuration": 2000
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» voiceUrl|body|string| 是 |语音文件的链接仅支持silk格式|
|» voiceDuration|body|integer| 是 |语音时长,单位毫秒|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1704357563,
"msgId": 640355967,
"newMsgId": 2321462558768366600,
"type": null
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送视频消息
POST /message/postVideo
#### 注意
发送视频接口会返回cdn相关的信息如有需求同一个视频发送多次第二次及以后发送时可使用接口返回的cdn信息拼装xml调用[转发视频接口](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794552),这样可以缩短发送时间
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "{{toWxid}}",
"videoUrl": "https://scrm-1308498490.cos.ap-shanghai.myqcloud.com/1/41734f00f3803ca1cd8f5ad6d5f8d559.mp4?q-sign-algorithm=sha1&q-ak=AKIDmOkqfDUUDfqjMincBSSAbleGaeQv96mB&q-sign-time=1724227372;2588140972&q-key-time=1724227372;2588140972&q-header-list=&q-url-param-list=&q-signature=4e18eb97ab165f27afe0444516e54204f506c7e1",
"thumbUrl": "https://scrm-1308498490.cos.ap-shanghai.myqcloud.com/1/logo.jpg?q-sign-algorithm=sha1&q-ak=AKIDmOkqfDUUDfqjMincBSSAbleGaeQv96mB&q-sign-time=1724227462;2588141062&q-key-time=1724227462;2588141062&q-header-list=&q-url-param-list=&q-signature=0bc8b973567d2672e5eaada1b5d466e23ce6b750",
"videoDuration": 10
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» videoUrl|body|string| 是 |视频的链接|
|» thumbUrl|body|string| 是 |缩略图的链接|
|» videoDuration|body|integer| 是 |视频的播放时长,单位秒|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": null,
"msgId": 769523567,
"newMsgId": 945590746179451500,
"type": null,
"aesKey": "687a636f627579667a756a7168717968",
"fileId": "3052020100044b304902010002043904752002033d11ff02045dd79b240204658e9072042466633131376136662d366566632d343638662d613633662d3536316139616133383362350204012400040201000400",
"length": 1315979
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|null|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|null|true|none||消息类型|
|»» aesKey|string|true|none||cdn相关的aeskey|
|»» fileId|string|true|none||cdn相关的fileid|
|»» length|integer|true|none||视频文件大小|
## POST 发送链接消息
POST /message/postLink
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"title": "澳门这一夜",
"desc": "39岁郭碧婷用珠圆玉润的身材狠狠打脸了白幼瘦女星",
"linkUrl": "https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_8864265500294006781%22%7D&n_type=-1&p_from=-1",
"thumbUrl": "https://pics3.baidu.com/feed/0824ab18972bd407a9403f336648d15c0db30943.jpeg@f_auto?token=d26f7f142871542956aaa13799ba1946"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» title|body|string| 是 |链接标题|
|» desc|body|string| 是 |链接描述|
|» linkUrl|body|string| 是 |链接地址|
|» thumbUrl|body|string| 是 |链接缩略图地址|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1703841982,
"msgId": 769523572,
"newMsgId": 3358797740318931000,
"type": 5
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送名片消息
POST /message/postNameCard
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"nickName": "谭艳",
"nameCardWxid": "wxid_0xsqb3o0tsvz22"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» nickName|body|string| 是 |名片的昵称|
|» nameCardWxid|body|string| 是 |名片的wxid|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1703842036,
"msgId": 0,
"newMsgId": 3285058507819179500,
"type": 42
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送emoji消息
POST /message/postEmoji
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"emojiMd5": "4cc7540a85b5b6cf4ba14e9f4ae08b7c",
"emojiSize": 102357
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» emojiMd5|body|string| 是 |emoji图片的md5|
|» emojiSize|body|integer| 是 |emoji的文件大小|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": null,
"msgId": 769523643,
"newMsgId": 891398861855787000,
"type": null
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送appmsg消息
POST /message/postAppMsg
#### 注意
本接口可用于发送所有包含<appmsg>节点的消息,例如:音乐分享、视频号、引用消息等等
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"appmsg": "<appmsg appid=\"\" sdkver=\"0\">\n\t\t<title>一审宣判!蔡鄂生被判死缓</title>\n\t\t<des />\n\t\t<action />\n\t\t<type>5</type>\n\t\t<showtype>0</showtype>\n\t\t<soundtype>0</soundtype>\n\t\t<mediatagname />\n\t\t<messageext />\n\t\t<messageaction />\n\t\t<content />\n\t\t<contentattr>0</contentattr>\n\t\t<url>http://mp.weixin.qq.com/s?__biz=MjM5MjAxNDM4MA==&amp;mid=2666774093&amp;idx=1&amp;sn=aa405094dd00034d004f6e8287f86e9b&amp;chksm=bcc9d903635a9c284591edda1f027c467245d922d7d66c32d3cd2c6af1c969a7ea0896aa7639&amp;scene=0&amp;xtrack=1#rd</url>\n\t\t<lowurl />\n\t\t<dataurl />\n\t\t<lowdataurl />\n\t\t<appattach>\n\t\t\t<totallen>0</totallen>\n\t\t\t<attachid />\n\t\t\t<emoticonmd5 />\n\t\t\t<fileext />\n\t\t\t<cdnthumburl>3057020100044b304902010002048399cc8402032f57ed02041388e6720204658e922d042462666538346165322d303035382d343262322d616538322d3337306231346630323534360204051408030201000405004c53d900</cdnthumburl>\n\t\t\t<cdnthumbmd5>ea3d5e8d4059cb4db0a3c39c789f2d6f</cdnthumbmd5>\n\t\t\t<cdnthumblength>93065</cdnthumblength>\n\t\t\t<cdnthumbwidth>1080</cdnthumbwidth>\n\t\t\t<cdnthumbheight>459</cdnthumbheight>\n\t\t\t<cdnthumbaeskey>849df42ab37c8cadb324fe94ba46d76e</cdnthumbaeskey>\n\t\t\t<aeskey>849df42ab37c8cadb324fe94ba46d76e</aeskey>\n\t\t\t<encryver>0</encryver>\n\t\t</appattach>\n\t\t<extinfo />\n\t\t<sourceusername>gh_363b924965e9</sourceusername>\n\t\t<sourcedisplayname>人民日报</sourcedisplayname>\n\t\t<thumburl>https://mmbiz.qpic.cn/sz_mmbiz_jpg/xrFYciaHL08DCJtwQefqrH8JcohbOHhTpyCPab8IgDibkTv3Pspicjw8TRHnoic2tmiafBtUHg7ObZznpWocwkCib6Tw/640?wxtype=jpeg&amp;wxfrom=0</thumburl>\n\t\t<md5 />\n\t\t<statextstr />\n\t\t<mmreadershare>\n\t\t\t<itemshowtype>0</itemshowtype>\n\t\t</mmreadershare>\n\t</appmsg>"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» appmsg|body|string| 是 |回调消息中的appmsg节点内容|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1703842453,
"msgId": 769523712,
"newMsgId": 3090682956820882400,
"type": 0
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 发送小程序消息
POST /message/postMiniApp
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"miniAppId": "wx1f9ea355b47256dd",
"userName": "gh_690acf47ea05@app",
"title": "最快29分钟 好吃水果送到家",
"coverImgUrl": "https://che-static.vzhimeng.com/img/2023/10/30/67d55942-e43c-4fdb-8396-506794ddbdbc.jpg",
"pagePath": "pages/homeDelivery/index.html",
"displayName": "百果园+"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» miniAppId|body|string| 是 |小程序ID|
|» displayName|body|string| 是 |小程序名称|
|» pagePath|body|string| 是 |小程序打开的地址|
|» coverImgUrl|body|string| 是 |小程序封面图链接|
|» title|body|string| 是 |小程序标题|
|» userName|body|string| 是 |归属的用户ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1704162674,
"msgId": 769533691,
"newMsgId": 3190424380344821000,
"type": 33
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 转发文件
POST /message/forwardFile
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"xml": "<?xml version=\"1.0\"?>\n<msg>\n\t<appmsg appid=\"\" sdkver=\"0\">\n\t\t<title>info.json</title>\n\t\t<des />\n\t\t<action />\n\t\t<type>6</type>\n\t\t<showtype>0</showtype>\n\t\t<soundtype>0</soundtype>\n\t\t<mediatagname />\n\t\t<messageext />\n\t\t<messageaction />\n\t\t<content />\n\t\t<contentattr>0</contentattr>\n\t\t<url />\n\t\t<lowurl />\n\t\t<dataurl />\n\t\t<lowdataurl />\n\t\t<appattach>\n\t\t\t<totallen>63</totallen>\n\t\t\t<attachid>@cdn_3057020100044b304902010002043904752002032f7d6d02046bb5bade02046593760c042433653765306131612d646138622d346662322d383239362d3964343665623766323061370204051400050201000405004c53d900_f46be643aa0dc009ae5fb63bbc73335d_1</attachid>\n\t\t\t<emoticonmd5 />\n\t\t\t<fileext>json</fileext>\n\t\t\t<cdnattachurl>3057020100044b304902010002043904752002032f7d6d02046bb5bade02046593760c042433653765306131612d646138622d346662322d383239362d3964343665623766323061370204051400050201000405004c53d900</cdnattachurl>\n\t\t\t<aeskey>f46be643aa0dc009ae5fb63bbc73335d</aeskey>\n\t\t\t<encryver>0</encryver>\n\t\t\t<overwrite_newmsgid>594239960546299206</overwrite_newmsgid>\n\t\t\t<fileuploadtoken>v1_0bgfyCkUmoZYYyvXys0cCiJdd2R/pKPdD2TNi9IY6FOt+Tvlhp3ijUoupZHzyB2Lp7xYgdVFaUGL4iu3Pm9/YACCt20egPGpT+DKe+VymOzD7tJfsS8YW7JObTbN8eVoFEetU5HSRWTgS/48VVsPZMoDF6Gz1XJDLN/dWRxvzrbOzVGGNvmY4lpXb0kRwXkSxwL+dO4=</fileuploadtoken>\n\t\t</appattach>\n\t\t<extinfo />\n\t\t<sourceusername />\n\t\t<sourcedisplayname />\n\t\t<thumburl />\n\t\t<md5>d16070253eee7173e467dd7237d76f60</md5>\n\t\t<statextstr />\n\t</appmsg>\n\t<fromusername>zhangchuan2288</fromusername>\n\t<scene>0</scene>\n\t<appinfo>\n\t\t<version>1</version>\n\t\t<appname></appname>\n\t</appinfo>\n\t<commenturl></commenturl>\n</msg>"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» xml|body|string| 是 |文件消息的xml|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1704162866,
"msgId": 769533740,
"newMsgId": 6455486805605396000,
"type": 6
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 转发图片
POST /message/forwardImage
#### 注意
若通过发送图片消息获取cdn信息后可替换xml中的aeskey、cdnthumbaeskey、cdnthumburl、cdnmidimgurl、length、md5等参数来进行转发
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"xml": "<?xml version=\"1.0\"?>\n<msg>\n\t<img aeskey=\"294774c8ac2ca8f8114e4d58d2ba78a5\" encryver=\"1\" cdnthumbaeskey=\"294774c8ac2ca8f8114e4d58d2ba78a5\" cdnthumburl=\"3057020100044b304902010002043904752002032f7d6d02046bb5bade020465937656042436626431373937632d613430642d346137662d626230352d3832613335353935333130630204051818020201000405004c543d00\" cdnthumblength=\"2253\" cdnthumbheight=\"120\" cdnthumbwidth=\"111\" cdnmidheight=\"0\" cdnmidwidth=\"0\" cdnhdheight=\"0\" cdnhdwidth=\"0\" cdnmidimgurl=\"3057020100044b304902010002043904752002032f7d6d02046bb5bade020465937656042436626431373937632d613430642d346137662d626230352d3832613335353935333130630204051818020201000405004c543d00\" length=\"4061\" md5=\"799ee4beed51720525232aef6a0d2ec4\" />\n\t<platform_signature></platform_signature>\n\t<imgdatahash></imgdatahash>\n</msg>"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» xml|body|string| 是 |文件消息的xml|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 0,
"msgId": 769533749,
"newMsgId": 7003061792458481000,
"type": null,
"aesKey": "294774c8ac2ca8f8114e4d58d2ba78a5",
"fileId": "3057020100044b304902010002043904752002032f7d6d02046bb5bade020465937656042436626431373937632d613430642d346137662d626230352d3832613335353935333130630204051818020201000405004c543d00",
"length": null,
"width": null,
"height": null,
"md5": null
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|null|true|none||消息类型|
|»» aesKey|string|true|none||cdn相关的aeskey|
|»» fileId|string|true|none||cdn相关的fileid|
|»» length|integer|true|none||图片文件大小|
|»» width|integer|true|none||图片宽度|
|»» height|integer|true|none||图片高度|
|»» md5|string|true|none||图片md5|
## POST 转发视频
POST /message/forwardVideo
#### 注意
若通过发送视频消息获取cdn信息后可替换xml中的aeskey、cdnthumbaeskey、cdnvideourl、cdnthumburl、length等参数来进行转发
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"xml": "<?xml version=\"1.0\"?>\n<msg>\n\t<videomsg aeskey=\"5c5163d06757faae44eacc2146ba0575\" cdnvideourl=\"3057020100044b304902010002043904752002032f7d6d02046bb5bade0204659376a6042465623261663836382d336363332d346131332d383037642d3464626162316638303634360204051800040201000405004c56f900\" cdnthumbaeskey=\"5c5163d06757faae44eacc2146ba0575\" cdnthumburl=\"3057020100044b304902010002043904752002032f7d6d02046bb5bade0204659376a6042465623261663836382d336363332d346131332d383037642d3464626162316638303634360204051800040201000405004c56f900\" length=\"490566\" playlength=\"7\" cdnthumblength=\"8192\" cdnthumbwidth=\"135\" cdnthumbheight=\"240\" fromusername=\"zhangchuan2288\" md5=\"8804c121e9db91dd844f7a34035beb88\" newmd5=\"\" isplaceholder=\"0\" rawmd5=\"\" rawlength=\"0\" cdnrawvideourl=\"\" cdnrawvideoaeskey=\"\" overwritenewmsgid=\"0\" originsourcemd5=\"\" isad=\"0\" />\n</msg>"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» xml|body|string| 是 |文件消息的xml|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": null,
"msgId": 769533762,
"newMsgId": 2099537549112929300,
"type": null,
"aesKey": "5c5163d06757faae44eacc2146ba0575",
"fileId": null,
"length": 490566
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|null|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|null|true|none||消息类型|
|»» aesKey|string|true|none||cdn相关的aeskey|
|»» fileId|string|true|none||cdn相关的fileid|
|»» length|integer|true|none||视频文件大小|
## POST 转发链接
POST /message/forwardUrl
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"xml": "<?xml version=\"1.0\"?>\n<msg>\n\t<appmsg appid=\"\" sdkver=\"0\">\n\t\t<title>“李在明遇袭,颈部出血”</title>\n\t\t<des />\n\t\t<action />\n\t\t<type>5</type>\n\t\t<showtype>0</showtype>\n\t\t<soundtype>0</soundtype>\n\t\t<mediatagname />\n\t\t<messageext />\n\t\t<messageaction />\n\t\t<content />\n\t\t<contentattr>0</contentattr>\n\t\t<url>http://mp.weixin.qq.com/s?__biz=MjM5MzI5NTU3MQ==&amp;mid=2652294920&amp;idx=1&amp;sn=ad415f5d83e1471b845b2cb3fca7c3ce&amp;chksm=bce58367ee6ae84b711255705422d1554ee96b92d75648751316639d4aa09289d7827ff1cc85&amp;scene=0&amp;xtrack=1#rd</url>\n\t\t<lowurl />\n\t\t<dataurl />\n\t\t<lowdataurl />\n\t\t<appattach>\n\t\t\t<totallen>0</totallen>\n\t\t\t<attachid />\n\t\t\t<emoticonmd5 />\n\t\t\t<fileext />\n\t\t\t<cdnthumburl>3057020100044b304902010002048399cc8402032f7d6d020468b5bade0204659376ec042463663234636366642d323736612d343533342d623734342d3864623065633235636135390204051808030201000405004c56f900</cdnthumburl>\n\t\t\t<cdnthumbmd5>8e32cafa882f9b4f7c51fb568c0c4f8e</cdnthumbmd5>\n\t\t\t<cdnthumblength>38637</cdnthumblength>\n\t\t\t<cdnthumbwidth>658</cdnthumbwidth>\n\t\t\t<cdnthumbheight>280</cdnthumbheight>\n\t\t\t<cdnthumbaeskey>accc71cbe8ff795a94583fc514d198a8</cdnthumbaeskey>\n\t\t\t<aeskey>accc71cbe8ff795a94583fc514d198a8</aeskey>\n\t\t\t<encryver>0</encryver>\n\t\t</appattach>\n\t\t<extinfo />\n\t\t<sourceusername>gh_d29e0d22a6f9</sourceusername>\n\t\t<sourcedisplayname>澎湃新闻</sourcedisplayname>\n\t\t<thumburl>https://mmbiz.qpic.cn/mmbiz_jpg/yl6JkZAE3SibWvw5icQJpv87X084SRJOVeS3k7KMscRzov1nwicjMYzicyBIpRdJchWKTGPf4eN2H07Jicl11zMK2Pw/640?wxtype=jpeg&amp;wxfrom=0</thumburl>\n\t\t<md5 />\n\t\t<statextstr />\n\t\t<mmreadershare>\n\t\t\t<itemshowtype>0</itemshowtype>\n\t\t</mmreadershare>\n\t</appmsg>\n\t<fromusername>zhangchuan2288</fromusername>\n\t<scene>0</scene>\n\t<appinfo>\n\t\t<version>1</version>\n\t\t<appname></appname>\n\t</appinfo>\n\t<commenturl></commenturl>\n</msg>"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» xml|body|string| 是 |文件消息的xml|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1704163083,
"msgId": 769533781,
"newMsgId": 1947412320722133800,
"type": 5
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 转发小程序
POST /message/forwardMiniApp
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"xml": "<?xml version=\"1.0\"?>\n<msg>\n\t<appmsg appid=\"\" sdkver=\"0\">\n\t\t<title>👇晒出新年第一杯,点赞赢饮茶月卡</title>\n\t\t<des />\n\t\t<action />\n\t\t<type>33</type>\n\t\t<showtype>0</showtype>\n\t\t<soundtype>0</soundtype>\n\t\t<mediatagname />\n\t\t<messageext />\n\t\t<messageaction />\n\t\t<content />\n\t\t<contentattr>0</contentattr>\n\t\t<url>https://mp.weixin.qq.com/mp/waerrpage?appid=wxafec6f8422cb357b&amp;type=upgrade&amp;upgradetype=3#wechat_redirect</url>\n\t\t<lowurl />\n\t\t<dataurl />\n\t\t<lowdataurl />\n\t\t<appattach>\n\t\t\t<totallen>0</totallen>\n\t\t\t<attachid />\n\t\t\t<emoticonmd5 />\n\t\t\t<fileext />\n\t\t\t<cdnthumburl>3057020100044b30490201000204573515c902032f7d6d020416b7bade020465922a53042437383139393934652d323662652d346430662d396466362d3466303137346139616362390204051408030201000405004c53d900</cdnthumburl>\n\t\t\t<cdnthumbmd5>33cf0a1101e7f8cd3057cd417a691f0b</cdnthumbmd5>\n\t\t\t<cdnthumblength>96673</cdnthumblength>\n\t\t\t<cdnthumbwidth>600</cdnthumbwidth>\n\t\t\t<cdnthumbheight>500</cdnthumbheight>\n\t\t\t<cdnthumbaeskey>6f3098f2ee8b351b6cc9b1818d580356</cdnthumbaeskey>\n\t\t\t<aeskey>6f3098f2ee8b351b6cc9b1818d580356</aeskey>\n\t\t\t<encryver>0</encryver>\n\t\t</appattach>\n\t\t<extinfo />\n\t\t<sourceusername>gh_e9d25e745aae@app</sourceusername>\n\t\t<sourcedisplayname>霸王茶姬</sourcedisplayname>\n\t\t<thumburl />\n\t\t<md5 />\n\t\t<statextstr />\n\t\t<weappinfo>\n\t\t\t<username><![CDATA[gh_e9d25e745aae@app]]></username>\n\t\t\t<appid><![CDATA[wxafec6f8422cb357b]]></appid>\n\t\t\t<type>2</type>\n\t\t\t<version>193</version>\n\t\t\t<weappiconurl><![CDATA[]]></weappiconurl>\n\t\t\t<pagepath><![CDATA[/pages/page/page.html?code=JKD6DA55_3&channelCode=scrm_t664sgg5mrzxkqa]]></pagepath>\n\t\t\t<shareId><![CDATA[0_wxafec6f8422cb357b_25984983017778987@openim_1704162955_0]]></shareId>\n\t\t\t<pkginfo>\n\t\t\t\t<type>0</type>\n\t\t\t\t<md5><![CDATA[]]></md5>\n\t\t\t</pkginfo>\n\t\t\t<appservicetype>0</appservicetype>\n\t\t</weappinfo>\n\t</appmsg>\n\t<fromusername>zhangchuan2288</fromusername>\n\t<scene>0</scene>\n\t<appinfo>\n\t\t<version>1</version>\n\t\t<appname></appname>\n\t</appinfo>\n\t<commenturl></commenturl>\n</msg>",
"coverImgUrl": "http://dummyimage.com/400x400"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» xml|body|string| 是 |文件消息的xml|
|» coverImgUrl|body|string| 是 |小程序封面图链接|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"toWxid": "34757816141@chatroom",
"createTime": 1704163145,
"msgId": 769533801,
"newMsgId": 5271007655758710000,
"type": 33
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» toWxid|string|true|none||接收人的wxid|
|»» createTime|integer|true|none||发送时间|
|»» msgId|integer|true|none||消息ID|
|»» newMsgId|integer|true|none||消息ID|
|»» type|integer|true|none||消息类型|
## POST 撤回消息
POST /message/revokeMsg
> Body 请求参数
```json
{
"appId": "{{appid}}",
"toWxid": "34757816141@chatroom",
"msgId": "769533801",
"newMsgId": "5271007655758710001",
"createTime": "1704163145"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» toWxid|body|string| 是 |好友/群的ID|
|» msgId|body|string| 是 |发送类接口返回的msgId|
|» newMsgId|body|string| 是 |发送类接口返回的newMsgId|
|» createTime|body|string| 是 |发送类接口返回的createTime|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
# 基础API/消息模块/下载
## POST 下载图片
POST /message/downloadImage
**注意** 如果下载图片失败,可尝试下载另外两种图片类型,并非所有图片都会有高清、常规图片
> Body 请求参数
```json
{
"appId": "{{appid}}",
"type": 2,
"xml": "<?xml version=\"1.0\"?>\n<msg>\n\t<img aeskey=\"83721f32eeab053f06317c1de5138461\" encryver=\"1\" cdnthumbaeskey=\"83721f32eeab053f06317c1de5138461\" cdnthumburl=\"3057020100044b30490201000204a2b473b402032f7efd02045b04d83a020466bb1a2c042464303334643966392d363639312d343439632d393463302d373033346237333331396561020405150a020201000405004c505500\" cdnthumblength=\"5785\" cdnthumbheight=\"120\" cdnthumbwidth=\"120\" cdnmidheight=\"0\" cdnmidwidth=\"0\" cdnhdheight=\"0\" cdnhdwidth=\"0\" cdnmidimgurl=\"3057020100044b30490201000204a2b473b402032f7efd02045b04d83a020466bb1a2c042464303334643966392d363639312d343439632d393463302d373033346237333331396561020405150a020201000405004c505500\" length=\"9557\" md5=\"db3de4c78bc00837a32ed753a179c336\" hevc_mid_size=\"9557\" originsourcemd5=\"d5314bba593a09f61df100ba635b440e\" />\n\t<platform_signature />\n\t<imgdatahash />\n\t<ImgSourceInfo>\n\t\t<ImgSourceUrl />\n\t\t<BizType>0</BizType>\n\t</ImgSourceInfo>\n</msg>\n"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» xml|body|string| 是 |回调消息中的XML|
|» type|body|integer| 是 |下载的图片类型 1:高清图片 2:常规图片 3:缩略图|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"fileUrl": "/download/20240720/wx_BTVoJ_o_r6DpxNCNiycFE/0ca5b675-8e2c-4dc1-b288-3c44a40086ec4"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» fileUrl|string|true|none||图片链接地址7天有效|
# 基础API/标签模块
## POST 添加标签
POST /label/add
#### 注意
标签名称不存在则是添加标签如果标签名称已经存在此接口会直接返回标签名及ID
> Body 请求参数
```json
{
"appId": "{{appid}}",
"labelName": "testtest"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» labelName|body|string| 是 |标签名称|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"labelName": "testtest",
"labelId": 31
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» labelName|string|true|none||标签名称|
|»» labelId|integer|true|none||标签ID|
## POST 删除标签
POST /label/delete
> Body 请求参数
```json
{
"appId": "{{appid}}",
"labelIds": "31"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» labelIds|body|string| 是 |标签ID多个逗号分隔|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 标签列表
POST /label/list
> Body 请求参数
```json
{
"appId": "{{appid}}"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"labelList": [
{
"labelName": "朋友",
"labelId": 1
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» labelList|[object]|true|none||none|
|»»» labelName|string|false|none||标签名称|
|»»» labelId|integer|false|none||标签ID|
## POST 修改好友标签
POST /label/modifyMemberList
#### 注意
由于好友标签信息存储在用户客户端因此每次在修改时都需要进行全量修改。举例来说考虑好友Awxid_asdfaihp123该好友已经被标记为标签ID为1和2。
在添加标签ID为3时传递的参数如下labelIds1,2,3wxIds[wxid_asdfaihp123]。这表示要给好友A添加标签ID为3同时保留已有的标签ID 1和2。
而在删除标签ID为1时传递的参数如下labelIds2,3 wxIds[wxid_asdfaihp123]。这表示要将好友A的标签ID 1删除而保留标签ID 2。
> Body 请求参数
```json
{
"appId": "{{appid}}",
"labelIds": "15",
"wxIds": [
"zhangchuan2288"
]
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» labelIds|body|string| 是 |标签ID多个逗号分隔|
|» wxIds|body|[string]| 是 |修改的好友wxid|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
# 基础API/个人模块
## POST 获取个人资料
POST /personal/getProfile
> Body 请求参数
```json
{
"appId": "{{appid}}",
"proxyIp": ""
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"alias": null,
"wxid": "zhangchuan2288",
"nickName": "朝夕。",
"mobile": "18761670817",
"uin": 1042679712,
"sex": 1,
"province": "Jiangsu",
"city": "Xuzhou",
"signature": ".......",
"country": "CN",
"bigHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/REoLX7KfdibFAgDbtoeXGNjE6sGa8NCib8UaiazlekKjuLneCvicM4xQpuEbZWjjQooSicsKEbKdhqCOCpTHWtnBqdJicJ0I3CgZumwJ6SxR3ibuNs/0",
"smallHeadImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/REoLX7KfdibFAgDbtoeXGNjE6sGa8NCib8UaiazlekKjuLneCvicM4xQpuEbZWjjQooSicsKEbKdhqCOCpTHWtnBqdJicJ0I3CgZumwJ6SxR3ibuNs/132",
"regCountry": "CN",
"snsBgImg": "http://shmmsns.qpic.cn/mmsns/FzeKA69P5uIdqPfQxp59LvOohoE2iaiaj86IBH1jl0F76aGvg8AlU7giaMtBhQ3bPibunbhVLb3aEq4/0"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» alias|string|true|none||微信号|
|»» wxid|string|true|none||微信ID|
|»» nickName|string|true|none||昵称|
|»» mobile|string|true|none||绑定的手机号|
|»» uin|integer|true|none||uin|
|»» sex|integer|true|none||性别|
|»» province|string|true|none||省份|
|»» city|string|true|none||城市|
|»» signature|string|true|none||签名|
|»» country|string|true|none||国家|
|»» bigHeadImgUrl|string|true|none||大尺寸头像|
|»» smallHeadImgUrl|string|true|none||小尺寸头像|
|»» regCountry|string|true|none||注册国家|
|»» snsBgImg|string|true|none||朋友圈背景图|
## POST 获取自己的二维码
POST /personal/getQrCode
> Body 请求参数
```json
{
"appId": "{{appid}}",
"proxyIp": ""
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"qrCode": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAIAAgADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5kooor8XP6jCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK1tP03biWUc9lPb61+7FfUYXIaten7SpLlv0tf9UfAZhxdQwlZ0aFP2lt3eyv5aO5+CNFfvdRXZ/q5/wBPv/Jf+CeZ/rv/ANQ3/k//ANqfgjRX73UUf6uf9Pv/ACX/AIIf67/9Q3/k/wD9qfgjRX73UUf6uf8AT7/yX/gh/rv/ANQ3/k//ANqfgjRX73UUf6uf9Pv/ACX/AIIf67/9Q3/k/wD9qfgjRX73UUf6uf8AT7/yX/gh/rv/ANQ3/k//ANqfgjRX73UUf6uf9Pv/ACX/AIIf67/9Q3/k/wD9qfgjRX73UUf6uf8AT7/yX/gh/rv/ANQ3/k//ANqfgjRX73UUf6uf9Pv/ACX/AIIf67/9Q3/k/wD9qfgjRX73UUf6uf8AT7/yX/gh/rv/ANQ3/k//ANqfgjRX73UUf6uf9Pv/ACX/AIIf67/9Q3/k/wD9qfgjRX73UUf6uf8AT7/yX/gh/rv/ANQ3/k//ANqfgjRX73UUf6uf9Pv/ACX/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"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» qrCode|string|true|none||二维码图片的base64|
## POST 获取设备记录
POST /personal/getSafetyInfo
> Body 请求参数
```json
{
"appId": "{{appid}}",
"proxyIp": ""
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"list": [
{
"uuid": "087b139951b776e0416b5015d0b98109",
"deviceName": "iPhone 13 Pro",
"deviceType": "iPhone iOS17.2",
"lastTime": 1703218815
},
{
"uuid": "f7e4bda161f7a6a7361ca62141cded23",
"deviceName": "张传的MacBook Pro",
"deviceType": "iMac MacBookPro17,1 OSX OSX 13.3.1 build(22E261)",
"lastTime": 1703206819
},
{
"uuid": "80d6218be93f570a971d8c605fa542c3",
"deviceName": "iPad",
"deviceType": "iPad iOS14.5.1",
"lastTime": 1703065642
},
{
"uuid": "197e97585d02c9cd6e6de68c74c81780",
"deviceName": "iPad",
"deviceType": "iPad iOS14.5.1",
"lastTime": 1701300706
},
{
"uuid": "bf5eb4d8498f4affac1cbfb8aa936d2a",
"deviceName": "iPad",
"deviceType": "iPad iPadOS14.3",
"lastTime": 1696729849
},
{
"uuid": "33ac7f39ed3d7115d9c15f07981a264a",
"deviceName": "iPad",
"deviceType": "iPad iPadOS14.5.1",
"lastTime": 1695050733
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» list|[object]|true|none||设备记录|
|»»» uuid|string|true|none||设备ID|
|»»» deviceName|string|true|none||设备名称|
|»»» deviceType|string|true|none||设备类型|
|»»» lastTime|integer|true|none||最后操作时间|
## POST 隐私设置
POST /personal/privacySettings
**option 说明**
- 4: 加我为朋友时需要验证
- 7: 向我推荐通讯录朋友
- 8: 添加我的方式 手机号
- 25: 添加我的方式 微信号
- 38: 添加我的方式 群聊
- 39: 添加我的方式 我的二维码
- 40: 添加我的方式 名片
> Body 请求参数
```json
{
"appId": "{{appid}}",
"open": true,
"option": 4
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» option|body|integer| 否 |隐私设置的选项|
|» open|body|boolean| 是 |开关|
#### 详细说明
**» option**: 隐私设置的选项
4: 加我为朋友时需要验证
7: 向我推荐通讯录朋友
8: 添加我的方式 手机号
25: 添加我的方式 微信号
38: 添加我的方式 群聊
39: 添加我的方式 我的二维码
40: 添加我的方式 名片
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 修改个人信息
POST /personal/updateProfile
**注意** 修改个人信息需要单独设置每一项
比如修改昵称则参数仅传appId和nickName
修改地区则参数可传appId、country、province、city
> Body 请求参数
```json
{
"appId": "{{appid}}",
"city": "",
"country": "",
"nickName": "",
"province": "",
"sex": 1,
"signature": "......"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» city|body|string| 否 |城市|
|» country|body|string| 是 |国家|
|» nickName|body|string| 是 |昵称|
|» province|body|string| 是 |省份|
|» sex|body|string| 是 |性别 1:男 2:女|
|» signature|body|string| 是 |签名|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 修改头像
POST /personal/updateHeadImg
**注意** 修改头像后需要将手机的微信进程关掉,然后重启查看最新头像
> Body 请求参数
```json
{
"appId": "{{appid}}",
"headImgUrl": "https://wx.qlogo.cn/mmhead/ver_1/REoLX7KfdibFAgDbtoeXGNjE6sGa8NCib8UaiazlekKjuLneCvicM4xQpuEbZWjjQooSicsKEbKdhqCOCpTHWtnBqdJicJ0I3CgZumwJ6SxR3ibuNs/0"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» headImgUrl|body|string| 否 |头像的图片地址|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
# 基础API/收藏夹模块
## POST 同步收藏夹
POST /favor/sync
#### 注意:
响应结果中会包含已删除的的收藏夹记录通过flag=1来判断已删除
> Body 请求参数
```json
{
"appId": "{{appid}}",
"syncKey": ""
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» syncKey|body|string| 否 |翻页key首次传空获取下一页传接口返回的syncKey|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"syncKey": "CAESCAgBEJyi9e4C",
"list": [
{
"favId": 2,
"type": 1,
"flag": 1,
"updateTime": 1448465918
},
{
"favId": 1,
"type": 2,
"flag": 1,
"updateTime": 1448465922
}
]
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» syncKey|string|true|none||翻页key|
|»» list|[object]|true|none||none|
|»»» favId|integer|true|none||收藏夹ID|
|»»» type|integer|true|none||收藏内容类型|
|»»» flag|integer|true|none||收藏夹标识|
|»»» updateTime|integer|true|none||收藏时间|
## POST 获取收藏夹内容
POST /favor/getContent
> Body 请求参数
```json
{
"appId": "{{appid}}",
"favId": 179
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» favId|body|integer| 是 |收藏夹ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"favId": 179,
"status": 0,
"flag": 0,
"updateTime": 1703235210,
"content": "<favitem type=\"1\"><desc>没说呢</desc><source sourceid=\"1838546569535807562\" sourcetype=\"21\"><createtime>1703217521</createtime><tousr>wxid_cy6buf12nf6921</tousr><fromusr>zhangchuan2288</fromusr><msgid>1838546569535807562</msgid></source><ctrlflag>127</ctrlflag><taglist></taglist><tagidlist></tagidlist></favitem>"
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|object|true|none||none|
|»» favId|integer|true|none||收藏夹ID|
|»» status|integer|true|none||状态|
|»» flag|integer|true|none||收藏夹标识|
|»» updateTime|integer|true|none||更新时间|
|»» content|string|true|none||收藏的内容|
## POST 删除收藏夹
POST /favor/delete
> Body 请求参数
```json
{
"appId": "{{appid}}",
"favId": 179
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
|» favId|body|integer| 是 |收藏夹ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
# 基础API/账号管理
## POST 断线重连
POST /login/reconnection
- 当系统返回账号已离线但是手机顶部还显示ipad在线可用此接口尝试重连若返回错误/失败则必须重新调用[步骤一登录](https://apifox.com/apidoc/shared-69ba62ca-cb7d-437e-85e4-6f3d3df271b1/api-196794502)
- 本接口非常用接口,可忽略
> Body 请求参数
```json
{
"appId": "{{appid}}"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
```json
{
"ret": 200,
"msg": "操作成功"
}
```
```json
{
"ret": 200,
"msg": "操作成功",
"data": {
"uuid": "4YHmGvoXvgmS1MqWVtQ2",
"headImgUrl": "http://wx.qlogo.cn/mmhead/ver_1/ZYUmcl1UNzyB2onM08Ij901TaUOLIjHj2UicK3XGDsjEWl4XgQN5IjodunHicBVsZiaZc1iaGCRfluAxkzyibbiau3WBfFj2nprzKp2KryicMjGIvDbWOQGmibwVK648a3o4A8hD/0",
"nickName": "G",
"expiredTime": 230,
"status": 2,
"loginInfo": {
"uin": 4077276085,
"wxid": "wxid_0xsqb3o0tsvz22",
"nickName": "G",
"mobile": "17114312382",
"alias": null
}
}
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 退出
POST /login/logout
> Body 请求参数
```json
{
"appId": ""
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功"
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
## POST 检查是否在线
POST /login/checkOnline
响应结果的data=true则是在线反之为离线
> Body 请求参数
```json
{
"appId": "{{appid}}"
}
```
### 请求参数
|名称|位置|类型|必选|说明|
|---|---|---|---|---|
|X-GEWE-TOKEN|header|string| 是 |none|
|body|body|object| 否 |none|
|» appId|body|string| 是 |设备ID|
> 返回示例
> 200 Response
```json
{
"ret": 200,
"msg": "操作成功",
"data": true
}
```
### 返回结果
|状态码|状态码含义|说明|数据模型|
|---|---|---|---|
|200|[OK](https://tools.ietf.org/html/rfc7231#section-6.3.1)|none|Inline|
### 返回数据结构
状态码 **200**
|名称|类型|必选|约束|中文名|说明|
|---|---|---|---|---|---|
|» ret|integer|true|none||none|
|» msg|string|true|none||none|
|» data|boolean|true|none||none|
# 数据模型