工作手机对接文档
接入openapi服务,首先需要在管理后台生成clientId
和clientSecret
提醒: 请牢记
clientId
和clientSecret
,以及生成的accessToken
和refreshToken
参数timestamp表示1970年1月1日至今的毫秒数
请求传递的数据格式为JOSN
响应值code=1表示成功,0表示失败
请求协议为https
单页数量最大为500
接入步骤
第一步:获取accessToken和refreshToken
请求方式: POST
请求地址: https://wpapi.7moor.com/oauth/token/getToken
请求参数:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
clientId | string | 管理后台生成 | true |
clientSecret | string | 管理后台生成 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/oauth/token/getToken?timestamp=1562734640000 -H "Content-Type:application/json" -d '{"clientId":"0f30a37f1adca729","clientSecret":"af9cb1d2acf88264ab8477e3b8b34353"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {
"accessToken": "70C5F5F19942DF9378422B649D3E14BD",
"refreshToken": "F8A3F1DB4EF4DECFB3526E11C5D9C90A"
}
}
字段说明:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
accessToken | string | 获取数据的令牌 | true |
refreshToken | string | 刷新accessToken的令牌 | true |
第二步:使用accessToken调用接口
注意:在请求params参数中带上accessToken,以下使用请求通话数据列表为例
请求示例:
curl -X POST https://wpapi.7moor.com/api/device/call?timestamp=1562040757&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"page":"1","pageSize":"10"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {
"count" : 1,
"list" : [{
// ...
}]
}
}
相关说明
accessToken有效期为2个小时,当accessToken超时后,可以使用refreshToken进行刷新,accessToken刷新结果有两种:
-
若accessToken已超时,那么进行refreshToken会获取一个新的accessToken,新的超时时间;
-
若accessToken未超时,那么进行refreshToken不会改变accessToken,但超时时间会刷新,相当于续期accessToken。
refreshToken的有效期为30天,当refreshToken失效的后,需要用户重新获取token,所以,请开发者在refreshToken即将过期时(如第29天时),进行定时的自动获取token并保存好它。
刷新accessToken
请求方式: POST
请求地址: https://wpapi.7moor.com/oauth/token/reToken
请求示例:
curl -X POST https://wpapi.7moor.com/oauth/token/reToken?timestamp=1562734640000&refreshToken=F8A3F1DB4EF4DECFB3526E11C5D9C90A
成功响应:
{
"code": 1,
"msg": "",
"data": {
// 注意:accessToken已超时才会重新生成accessToken,否则只刷新超时时间,详见相关说明
"accessToken": "70C5F5F19942DF9378422B649D3E14BD"
}
}
接口
获取用户字段模版
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/customerTmp
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/crm/customerTmp?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD
成功响应:
{
"code": 1,
"msg": "",
"data": {
"fieldMap": {
"name": "姓名",
"phone": "手机",
"address": "地址",
"birthday": "生日",
"email": "邮箱",
"filed0": "字段1",
"filed1": "字段2",
"job": "职务",
"prov_city": "省市",
"remark": "备注",
"sex": "性别",
"source": "来源"
...省略其他字段...
}
}
}
添加用户接口
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/addCustomer
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求body:
{
"name": "张三",
"phone": "13877777777"
...省略其他字段...
}
字段说明:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
name | string | 姓名 | true |
phone | string | 手机号码 | true |
其他字段 | string | 其他字段 | false |
请求示例: |
curl -X POST https://wpapi.7moor.com/api/crm/addCustomer?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD
成功响应:
{
"code": 1,
"msg": "增加成功",
"data": {
"id": "a5511d68-be6b-11e9-9bbe-a0999b1a254b"
}
}
字段说明:
字段 | 类型 | 说明 |
---|---|---|
id | string | 用户主键id |
删除用户接口
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/delCustomer
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求body:
{
"id": "a5511d68-be6b-11e9-9bbe-a0999b1a254b"
}
字段说明:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
id | string | 用户主键id | true |
请求示例: |
curl -X POST https://wpapi.7moor.com/api/crm/delCustomer?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"id": "a5511d68-be6b-11e9-9bbe-a0999b1a254b"}'
成功响应:
{
"code": 1,
"msg": "删除成功",
"data": {}
}
字段说明:
字段 | 类型 | 说明 |
---|---|---|
id | string | 用户主键id |
修改用户信息接口
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/uptCustomer
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求body:
{
"id": "a5511d68-be6b-11e9-9bbe-a0999b1a254b"
...省略其他字段...
}
字段说明:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
id | string | 用户主键id | true |
其他字段 | string | 其他字段 | false |
请求示例:
curl -X POST https://wpapi.7moor.com/api/crm/uptCustomer?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD
成功响应:
{
"code": 1,
"msg": "修改成功",
"data": {}
}
拨打电话
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/callPhone
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求body:
{
"callPhone": "13899999999",
"userPhone": "13877777777"
}
字段说明:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
callPhone | string | 被叫手机号码 | true |
userPhone | string | 座席手机号码 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/crm/callPhone?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"callPhone":"13899999999","userPhone":"13788888888"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {}
}
第三方自动加微信
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/autoAddWx
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求body:
{
"phone": "13899999999",
"userPhone": "13877777777"
}
字段说明:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
phone | string | 被加微信的手机号码 | true |
userPhone | string | 座席手机号码 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/crm/autoAddWx?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"phone":"13899999999","userPhone":"13788888888"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {}
}
获取座席信息列表
请求方式: POST
请求地址: https://wpapi.7moor.com/api/crm/getUsers
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/crm/getUsers?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD
成功响应:
{
"code": 1,
"msg": "",
"data": {
"list":[
{
"_id": "agiew74717516969",
"name": "张三",
"phone": "13899999999"
}
]
}
}
字段说明:
字段 | 类型 | 描述 |
---|---|---|
_id | string | 座席id编号 |
name | string | 座席姓名 |
phone | string | 座席手机 |
获取通话记录
请求方式: POST
请求地址: https://wpapi.7moor.com/api/device/call
参数说明:
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求Body:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
page | int | 页码 | true |
pageSize | int | 单页数量 | true |
imeiOrName | string | IMEI或设备持有人 | false |
localTel | string | 工作手机号码 | false |
contactTel | string | 联系号码 | false |
callType | string | 通话类型:in外呼,out呼入 | false |
start | string | 开始时间 | false |
end | string | 结束时间 | false |
请求示例:
curl -X POST https://wpapi.7moor.com/api/device/call?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"page":1,"pageSize":10,"imeiOrName":"张三","callType":"in","start":"2019-06-17 11:11:11","end":"2019-06-18 12:12:12"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {
"count" : 1,
"list" : [{
"_id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
"did" : "e1ec479c-971f-11e9-b311-0242ac120002",
"imei" : "867183048059394",
"callType" : "out",
"connectType" : "disconnected",
"localTel" : "13323333333",
"uid" : "076f2acf-e810-4bc0-9c31-bbc21135709d",
"uName" : "川普",
"contactTel" : "15023333333",
"contactName" : "奥巴马",
"beginTime" : "2019-06-26 11:01:49",
"endTime" : "2019-06-26 11:02:50",
"duration" : 61,
"soundUrl" : "cf-workphone.oss-cn-hangzhou.aliyuncs.com/originalRecord/P00000000024/201907/20190708172233-19926022861-outCall-1562577753335.mp3"
}]
}
}
字段说明:
字段 | 类型 | 说明 | 是否必须 |
---|---|---|---|
id | string | 通话记录的唯一id | true |
did | string | 设备id | true |
imei | string | 设备IMEI码 | true |
callType | string | 呼叫类型( in:呼入,out:呼出) | true |
connectType | string | 通话类型("connected":接通,"disconnected":未接通) | true |
localTel | string | 本机号码 | true |
uid | string | 当时设备持有座席id | true |
uName | string | 当时设备持有座席name | true |
contactTel | string | 联系号码 | true |
contactName | string | 联系号码通讯录名称 | false |
beginTime | string | 呼通时间(例如:2006-01-02 15:04:05) | true |
endTime | string | 挂机时间(例如:2006-01-02 15:05:06) | true |
duration | int | 录音时长(例如:61) | false |
soundUrl | string | 录音地址,"not_found":录音未找到, "copy_fail":录音拷贝失败,"multiple_call_lose":多通通话录音丢失 | false |
获取短信记录
请求方式: POST
请求地址: https://wpapi.7moor.com/api/device/sms
参数说明:
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求Body:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
page | int | 页码 | true |
pageSize | int | 单页数量 | true |
imeiOrName | string | IMEI或设备持有人 | false |
localTel | string | 工作手机号码 | false |
contactTel | string | 联系号码 | false |
smsType | string | 短信类型:in接收,out发送 | false |
start | string | 开始时间 | false |
end | string | 结束时间 | false |
请求示例:
curl -X POST https://wpapi.7moor.com/api/device/sms?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"page":1,"pageSize":10,"imeiOrName":"867183048059394","smsType":"in","start":"2019-06-17 11:11:11","end":"2019-06-18 12:12:12"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {
"count" : 1,
"list" : [{
"id" : "0e4ccc60-8b6e-4693-87d4-f7d84bf57bf5",
"did" : "e1ec479c-971f-11e9-b311-0242ac120002",
"imei" : "867183048059394",
"smsType" : "out",
"localTel" : "13323333333",
"uid" : "076f2acf-e810-4bc0-9c31-bbc21135709d",
"uName" : "川普",
"contactTel" : "15023333333",
"contactName" : "奥巴马",
"snedTime" : "2019-06-26 11:01:49"
}]
}
}
字段说明:
字段 | 类型 | 说明 | 是否必须 |
---|---|---|---|
id | string | 通话记录的唯一id | true |
did | string | 设备id | true |
imei | string | 设备IMEI码 | true |
smsType | string | 短信类型( in:呼入,out:呼出) | true |
localTel | string | 本机号码 | true |
uid | string | 当时设备持有座席id | true |
uName | string | 当时设备持有座席name | true |
contactTel | string | 联系号码 | true |
contactName | string | 联系号码通讯录名称 | false |
sendTime | string | 短信发送或接收时间(例如:2006-01-02 15:04:05) | true |
获取座席个人通话报表
请求方式: POST
请求地址: https://wpapi.7moor.com/api/report/callReport
参数说明:
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求Body:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
agentId | string | 座席id | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/report/callReport?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"agentId":"d65cca44-930c-11e9-b272-0242ac110006"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {
"today": 31,
"late7": 142,
"late30":176
}
}
字段说明:
字段 | 类型 | 说明 | 是否必须 |
---|---|---|---|
today | int | 今日通话总数 | true |
late7 | int | 最近7天通话总数 | true |
late30 | int | 最近30天通话总数 | true |
获取座席个人通话报表详情
请求方式: POST
请求地址: https://wpapi.7moor.com/api/report/callDetail
参数说明:
Params:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
timestamp | string | 1970年1月1日至今的毫秒数 | true |
accessToken | string | 获取数据的令牌 | true |
请求Body:
字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|
agentId | string | 座席id | true |
timeSet | string | 时间段(今日:"today", 近7日:"late7",近30日:"late30"),默认今日 | false |
请求示例:
curl -X POST https://wpapi.7moor.com/api/report/callDetail?timestamp=1562734640000&accessToken=70C5F5F19942DF9378422B649D3E14BD -H "Content-Type:application/json" -d '{"agentId":"d65cca44-930c-11e9-b272-0242ac110006","timeSet":"late7"}'
成功响应:
{
"code": 1,
"msg": "",
"data": {
"in": 45,
"out": 97,
"inConnect": 26,
"outConnect": 41,
"inDuration": 550,
"outDuration": 980,
"timeframe": "2019-07-11 ~ 2019-07-17",
"list": [
{
"date": "2019-07-11",
"in": 0,
"out": 0,
"inDuration": 0,
"outDuration": 0
},
// ...省略部分数据
{
"date": "2019-07-17",
"in": 7,
"out": 24,
"inDuration": 120,
"outDuration": 429
}
]
}
}
字段说明:
字段 | 类型 | 说明 | 是否必须 |
---|---|---|---|
in | int | 呼入通话总数 | true |
out | int | 呼出通话总数 | true |
inConnect | int | 呼入通话接通数 | true |
outConnect | int | 呼出通话接通数 | true |
inDuration | int | 呼入通话总时长(单位:秒) | true |
outDuration | int | 呼出通话总时长(单位:秒) | true |
timeframe | string | 统计时间段 | true |
list | array | 统计时间段内的数据数组,timeSet=="today"时为null | false |
date | string | 通话数据记录时间 | false |
获取微信用户
请求方式: POST
请求地址: https://wpapi.7moor.com/api/wechat/queryWeChatUserByPage
Params:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
url | timestamp | string | 毫秒时间戳 | true |
url | accessToken | string | 获取数据的令牌 | true |
body | page | int | 页码,1 ~ 500 | true |
body | pageSize | int | 每页返回条数,1 ~ 100 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/wechat/queryWeChatUserByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"page": 1,"pageSize": 10}'
成功响应:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
data | count | int | 总数 | true |
data | list | Array | 详细数据 | true |
list | id | string | 主键Id | true |
list | imei | string | 设备imei | true |
list | phone | string | 设备手机号 | false |
list | wxNo | string | 微信号 | true |
list | wxNo1 | string | 微信号1,有可能不存在 | false |
list | version | string | 微信版本号 | true |
list | nick | string | 微信昵称 | true |
list | headImg | string | 小头像 | false |
list | headImg1 | string | 大头像 | false |
{
"code": 1,
"msg": "ok",
"data": {
"count": 3,
"list": [
{
"id": "00557d49-9d7a-11e9-b16f-0242ac110006",
"imei": "4dff585a-930a-11e9-9022-0242ac110005",
"phone": "17781651273",
"wxNo": "wxid_m90g9psrmdbf22",
"wxNo1": "fake_1561617539899",
"version": "7.0.5",
"nick": "电信手",
"headImg": "http://wx.qlogo.cn/mmhead/ver_1/oia0Eng0Lm0xq3Zv4vnM5zcZzYOpQ0KpVsMXicd3fLT2iaUdIicmJCHeO347cQSs1Mv4TJSiauXqWT0Cz7Z2B3gUP0dVvhHcbc3qJib2D68dJHVdU/132",
"headImg1": "http://wx.qlogo.cn/mmhead/ver_1/oia0Eng0Lm0xq3Zv4vnM5zcZzYOpQ0KpVsMXicd3fLT2iaUdIicmJCHeO347cQSs1Mv4TJSiauXqWT0Cz7Z2B3gUP0dVvhHcbc3qJib2D68dJHVdU/0"
}
]
}
}
失败响应:
{
"code": 0,
"msg": "",
"data": null
}
获取微信联系人
请求方式: POST
请求地址: https://wpapi.7moor.com/api/wechat/getWeContactByPage
Params:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
url | timestamp | string | 毫秒时间戳 | true |
url | accessToken | string | 获取数据的令牌 | true |
body | page | int | 页码,1 ~ 500 | true |
body | pageSize | int | 每页返回条数,1 ~ 100 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/wechat/getWeContactByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"page": 1,"pageSize": 10}'
成功响应:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
data | count | int | 总数 | true |
data | list | Array | 详细数据 | true |
list | id | string | 主键Id | true |
list | agentWxNo | string | 坐席微信号 | true |
list | agentNick | string | 坐席微信昵称 | true |
list | wxNo | string | 好友微信号 | true |
list | wxNo1 | string | 好友微信号1,有可能不存在 | false |
list | nick | string | 好友昵称 | true |
list | headImg | string | 好友小头像 | false |
list | headImg1 | string | 好友大头像 | false |
list | status | string | 大头像 | false |
list | createTime | string | 创建时间 | false |
list | ts | string | 时间戳 | false |
{
"code": 1,
"msg": "ok",
"data": {
"count": 206,
"list": [
{
"id": "a989bc40-9329-11e9-b272-0242ac110006",
"agentWxNo": "wxid_1gdwolwrn5hs22",
"agentNick": "呵呵1",
"wxNo": "wxid_nbyw4pxrqk3l12",
"wxNo1": "",
"nick": "A00耘健身小虎 15397778083",
"headImg": "http://wx.qlogo.cn/mmhead/ver_1/vpC9eRFDs0fM7HWDZBUAJZnIhknAOry6dHXdiadURr61Uj0CRyFnn0uEV4z2HD3mk4OejKIsKOLCeLHma9H2C4HUod8picr6IaxayTibq3vMCE/96",
"headImg1": "http://wx.qlogo.cn/mmhead/ver_1/vpC9eRFDs0fM7HWDZBUAJZnIhknAOry6dHXdiadURr61Uj0CRyFnn0uEV4z2HD3mk4OejKIsKOLCeLHma9H2C4HUod8picr6IaxayTibq3vMCE/0",
"status": "normal",
"createTime": "2019-06-20 15:04:35",
"ts": 1561014275882
}
]
}
}
失败响应:
{
"code": 0,
"msg": "",
"data": null
}
获取微信群信息
请求方式: POST
请求地址: https://wpapi.7moor.com/api/wechat/getWeChatRoomByPage
Params:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
url | timestamp | string | 毫秒时间戳 | true |
url | accessToken | string | 获取数据的令牌 | true |
body | page | int | 页码,1 ~ 500 | true |
body | pageSize | int | 每页返回条数,1 ~ 100 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/wechat/getWeChatRoomByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"page": 1,"pageSize": 10}'
成功响应:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
data | count | int | 总数 | true |
data | list | Array | 详细数据 | true |
list | id | string | 主键Id | true |
list | imei | string | 设备imei | true |
list | agentWxNo | string | 坐席微信号 | true |
list | member | array | 群成员Id | true |
list | name | string | 群名称 | false |
list | headImg | string | 群头像 | false |
list | memberList | string | 群成员微信号,使用";"分割 | true |
list | displayName | string | 群成员展示昵称,存在特殊字符使用群成员微信号,使用"、"分割 | false |
list | roomOwner | string | 群主微信号 | true |
list | memberCount | string | 群成员数量 | true |
{
"code": 1,
"msg": "ok",
"data": {
"count": 41,
"list": [
{
"id": "2a7a1c4d-9323-11e9-b272-0242ac110006",
"imei": "4dff585a-930a-11e9-9022-0242ac110005",
"agentWxNo": "wxid_tzp39rgo8r9u22",
"member": [
"ffc17316-a454-11e9-adf5-0242ac110009"
],
"name": "打农药的王者",
"headImg": "http://wx.qlogo.cn/mmcrhead/0A9uqO1pZiaF4lYYdhU3bdKSUaNHibf1qof0GZ5gZ6HwUbVaZAtb8icUicTBmic8rJzQNZNas8KIiaTyXafbiatpoCeo2lwCMibKL2qr/0",
"memberList": "lu616601854;ZhangJunBo666666;haibing0;wxid_rl6ewf0wsb5a31;wxid_j88919z5u6ta22;weiliyangcool;wxid_v0mldafv7qc822;wxid_zhuvuxo5i22922;wxid_tzp39rgo8r9u22;a29776044;artemuslll;wxid_veoyvjwusrnh22;wxid_vmp7hmxkyzo12;wxid_r610uc4a5tm541;chongjing344054",
"displayName": "黄璐、ZhangJunBo666666、haibing0、王加、wxid_j88919z5u6ta22、weiliyangcool、高翔、wxid_zhuvuxo5i22922、菜头、a29776044、李、wxid_veoyvjwusrnh22、王添、wxid_r610uc4a5tm541、chongjing344054",
"roomOwner": "lu616601854",
"memberCount": "15"
}
]
}
}
失败响应:
{
"code": 0,
"msg": "",
"data": null
}
获取微信群成员信息
请求方式: POST
请求地址: https://wpapi.7moor.com/api/wechat/getWeChatRoomMemberByPage
Params:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
url | timestamp | string | 毫秒时间戳 | true |
url | accessToken | string | 获取数据的令牌 | true |
body | chatRoomId | string | 群Id | true |
body | page | int | 页码,1 ~ 500 | true |
body | pageSize | int | 每页返回条数,1 ~ 100 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/wechat/getWeChatRoomMemberByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"chatRoomId": "2a7a1c4d-9323-11e9-b272-0242ac110006","page": 1,"pageSize": 10}'
成功响应:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
data | count | int | 总数 | true |
data | list | Array | 详细数据 | true |
list | id | string | 主键Id | true |
list | chatRoomId | string | 群Id | true |
list | nick | string | 昵称 | true |
list | headImg | array | 头像 | false |
list | wxNo | string | 微信号 | false |
list | isAgent | string | 是否是坐席, false的时候字段被忽略 | false |
list | agentWxNo | string | 坐席微信号 |
{
"code": 1,
"msg": "ok",
"data": {
"count": 15,
"list": [
{
"id": "ffc21cdb-a454-11e9-adf5-0242ac110009",
"chatRoomId": "2a7a1c4d-9323-11e9-b272-0242ac110006",
"nick": "海冰",
"headImg": "http://wx.qlogo.cn/mmhead/ver_1/44r4BtQoRnccWSGIia3QGbITSlhEYM1MUBj7JSDkazfpOXD98SoyL9FoibxxSfg3wQJCr4oFHkiaYQOuRjGHePGVw/132",
"wxNo": "haibing0",
"isAgent": true,
"agentWxNo": "haibing0"
}
]
}
}
失败响应:
{
"code": 0,
"msg": "",
"data": null
}
获取微信会话信息
请求方式: POST
请求地址: https://wpapi.7moor.com/api/wechat/getWeChatByPage
Params:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
url | timestamp | string | 毫秒时间戳 | true |
url | accessToken | string | 获取数据的令牌 | true |
body | imei | string | 设备imei | false |
body | start | string | 开始区间(yyyy-MM-dd hh:mm:ss) | false |
body | end | string | 结束区间(yyyy-MM-dd hh:mm:ss) | false |
body | page | int | 页码,1 ~ 500 | true |
body | pageSize | int | 每页返回条数,1 ~ 100 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/wechat/getWeChatByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"page": 1,"pageSize": 10}'
成功响应:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
data | count | int | 总数 | true |
data | list | Array | 详细数据 | true |
list | id | string | 主键Id | true |
list | agentWxNo | string | 坐席微信号 | true |
list | contactWxNo | string | 好友微信号,群聊没有 | false |
list | group | string | 群Id,单聊没有 | false |
list | chatType | string | 聊天类型 group 群聊,single 单聊 | true |
list | isSend | string | 会话发起 0 :对方 1:自己 | true |
{
"code": 1,
"msg": "ok",
"data": {
"count": 43,
"list": [
{
"id": "2b0959b1-9323-11e9-b272-0242ac110006",
"agentWxNo": "wxid_tzp39rgo8r9u22",
"group": "2b06e8a8-9323-11e9-b272-0242ac110006",
"chatType": "group",
"isSend": "0"
}
]
}
}
失败响应:
{
"code": 0,
"msg": "",
"data": null
}
获取微信消息信息
请求方式: POST
请求地址: https://wpapi.7moor.com/api/wechat/getWeMessageByPage
Params:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
url | timestamp | string | 毫秒时间戳 | true |
url | accessToken | string | 获取数据的令牌 | true |
body | chatId | string | 会话Id | false |
body | wxNo | string | 坐席微信号 | false |
body | imei | string | 设备imei | false |
body | start | string | 开始区间(yyyy-MM-dd hh:mm:ss) | false |
body | end | string | 结束区间(yyyy-MM-dd hh:mm:ss) | false |
body | page | int | 页码,1 ~ 500 | true |
body | pageSize | int | 每页返回条数,1 ~ 100 | true |
请求示例:
curl -X POST https://wpapi.7moor.com/api/wechat/getWeMessageByPage?timestamp=xxx&accessToken=foo -H "Content-Type:application/json" -d '{"chatId": "2b0959b1-9323-11e9-b272-0242ac110006",page": 1,"pageSize": 10}'
成功响应:
位置 | 字段 | 类型 | 描述 | 是否必须 |
---|---|---|---|---|
data | count | int | 总数 | true |
data | list | Array | 详细数据 | true |
list | id | string | 主键Id | true |
list | chatId | string | 会话Id | true |
list | from | string | 消息发起人 | false |
list | msg | string | 消息内容 | false |
list | msgType | string | 消息类型 | true |
list | date | string | 发送日期 | true |
list | ts | int | 发送时间戳 | true |
list | msgId | string | 聊天信息id | true |
list | isSend | string | 会话发起 0 :对方 1:自己 | true |
list | msgSvrId | string | 多媒体消息Id | false |
list | thumbImgPath | string | 语音消息,图片小图,视频封面 | false |
list | bigImgPath | string | 图片大图,视频链接 | false |
{
"code": 1,
"msg": "ok",
"data": {
"count": 75,
"list": [
{
"id": "43b3a7f5-9328-11e9-b272-0242ac110006",
"chatId": "2b0959b1-9323-11e9-b272-0242ac110006",
"from": "293ab6bc-9323-11e9-b272-0242ac110006",
"msg": "\n真的是好难约噢",
"msgType": "1",
"date": "2019-06-20",
"ts": 1561013064,
"msgId": "82",
"isSend": "0",
"msgSvrId": "9046641001935868169"
}
]
}
}
失败响应:
{
"code": 0,
"msg": "",
"data": null
}
微信消息类型说明
msgType 类型说明
类型 | 解释 |
---|---|
101 | 文本 |
102 | 图片 |
103 | 语音 |
104 | 视频 |
105 | 名片 |
106 | 地理位置 |
107 | 分享链接,网址,文件 |
108 | 系统消息 |
109 | 撤回消息 |
110 | 群系统消息 |
111 | SEMI_XML |
112 | 红包 |
113 | 群收款 |
114 | 群收款提醒 |
115 | 转账 |
文本
- 类型:101
- 数据结构:
wxMessage中的msg
{
"msg": "这是文本"
}
图片、语音、视频
- 类型:102、103、104
- 数据结构:
wxMedia的存储结构
{
"bigImgPath" : "test_big.jpg",
"thumbImgPath" : "test_thumb.jpg"
}
名片
- 类型:105
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"nickName": "一块二包邮",
"wxNo": "gh_66cc2df58915",
"bigHeadImgUrl": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM5riaOEnlFZtibiaMZMpIricKZaosia2ExVGKzNZga4D2L92OQ/0",
"smallHeadImgUrl": "http://wx.qlogo.cn/mmhead/Q3auHgzwzM5riaOEnlFZtibiaMZMpIricKZaosia2ExVGKzNZga4D2L92OQ/96"
}
地理位置
- 类型:106
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"log": "104.062881",
"lat": "30.554096",
"address": "蜀都中心二期(武侯区吉庆三路333号)",
"wxNo": "wxid_0080250784612"
}
分享链接,网址,文件 等
- 类型:107
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"title": "余林呱与余林🐑的聊天记录", //标题
"des": "余林呱:[图片]\n余林呱:那个。。给我发个红包???\n余林呱:[动画表情]\n余林呱:[图片]\n余林呱:[色]...", //描述
"type": "19", //类型:33 小程序,5 链接,6 文件, 19 聊天记录
"showtrueype": "0",
"url": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/favorite_record__w_unsupport\u0026from=singlemessage\u0026isappinstalled=0",//微信内部链接
"recordItem": "余林呱与余林🐑的聊天记录" //详细内容
}
系统消息
- 类型:108
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"content": "\"A手机维修二手买卖\" 撤回了一条消息", //内容
"payId": "", //微信支付Id(红包有值)
"msgIsSend": "", //原始消息发送类型(红包有值)
"type": 3 //类型 1 红包,2 普通消息,3 未知消息
}
{
"content":"位置共享已经结束", //内容
"payId":"", //红包微信支付Id
"msgIsSend": "",
"type":2 //类型 1 红包,2 普通消息,3 未知消息
}
{
"content":"H.Note领取了你的红包",
"payId":"1000039501201906056015038761805",
"msgIsSend": "",
"type":1
}
{
"content": "\"H.Note\" 撤回了一条消息",
"payId": "",
"msgIsSend": "",
"type": 2
}
撤回的消息
- 类型: 109
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"test": "你撤回了一条消息", //撤回消息展示
"timestrueamp": "1560150444638", //撤回消息发送时间
"preContent": "这是第三条消息", //撤回消息内容
"link": {
"text": "重新编辑"
}
}
群系统消息
- 类型:110
- 数据结构:
wxMessage中的msg,字符串格式
{
"msg": `"名字"邀请"余林🐑"加入了群聊`
}
{
"msg": `"名字"修改群名为“测试群”`
}
{
"msg": `"superwomen"邀请你加入了群聊,群聊参与人还有:呵呵😄`
}
红包
- 类型:112
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"des": "我给你发了一个红包,赶紧去拆!",
"url": "https://wxapp.tenpay.com/mmpayhb/wxhb_personalreceive?showwxpaytitle=1\u0026msgtype=1\u0026channelid=1\u0026sendid=1000039501201906056011499657896\u0026ver=6\u0026sign=6cabac162d11b76b628227520ee424b1e3878d33e78df534abba75b16c9cf1d36fede8e6db6677195b986d7a31e887fabaeeba13e6614b49334fd3d26b047d81a65fc89e97a304e6e2e7803398f0c573",
"type": "2001",
"title": "微信红包",
"thumbUrl": "https://wx.gtimg.com/hongbao/1800/hb.png",
"wcPayInfo": {
"templateId": "7a2a165d31da7fce6dd77e05c300028a",
"url": "https://wxapp.tenpay.com/mmpayhb/wxhb_personalreceive?showwxpaytitle=1\u0026msgtype=1\u0026channelid=1\u0026sendid=1000039501201906056011499657896\u0026ver=6\u0026sign=6cabac162d11b76b628227520ee424b1e3878d33e78df534abba75b16c9cf1d36fede8e6db6677195b986d7a31e887fabaeeba13e6614b49334fd3d26b047d81a65fc89e97a304e6e2e7803398f0c573",
"iconUrl": "https://wx.gtimg.com/hongbao/1800/hb.png",
"receivertrueitle": "普天同庆", //收到的红包标题
"sendertrueitle": "普天同庆", //发送的红包标题
"scenetrueext": "微信红包", //场景描述,1002对应的为微信红包
"senderDes": "查看红包", //发送的红包描述
"receiverDes": "领取红包", //收到的红包描述
"nativeUrl": "wxpay://c2cbizmessagehandler/hongbao/receivehongbao?msgtype=1\u0026channelid=1\u0026sendid=1000039501201906056011499657896\u0026sendusername=wxid_1gdwolwrn5hs22\u0026ver=6\u0026sign=6cabac162d11b76b628227520ee424b1e3878d33e78df534abba75b16c9cf1d36fede8e6db6677195b986d7a31e887fabaeeba13e6614b49334fd3d26b047d81a65fc89e97a304e6e2e7803398f0c573",
"sceneId": "1002", //类型:1002 红包,1001 群收款
"innertrueype": "0",
"payMsgId": "1000039501201906056011499657896", //微信支付交易Id
"Invalidtrueime": "1559803593",
"m7trueype": "0" //收钱类型 0 未领取,1 已领取
}
}
群收款
- 类型 113
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"des": "",
"url": "https://support.weixin.qq.com/security/readtemplate?t=w_security_center_website/upgrade\u0026wechat_real_lang=zh_CN",
"type": "2001",
"title": "",
"thumbUrl": "http://wx.gtimg.com/hongbao/img/newaa_3x.png",
"wcPayInfo": {
"templateId": "b9a794071ca79264fb48909c24f2c6cc",
"url": "https://support.weixin.qq.com/security/readtemplate?t=w_security_center_website/upgrade\u0026wechat_real_lang=zh_CN",
"iconUrl": "http://wx.gtimg.com/hongbao/img/newaa_3x.png",
"receivertrueitle": "活动账单",
"sendertrueitle": "活动账单",
"scenetrueext": "活动账单",
"senderDes": "每人需支付0.02元",
"receiverDes": "每人需支付0.02元",
"nativeUrl": "",
"sceneId": "1001",
"innertrueype": "0",
"payMsgId": "",
"Invalidtrueime": "1562226087",
"newAa": {
"billNo": "00db48218eb1a54d77489c9bb4fcd80bb22bd76fdd5d1316e8df44490f9f68aba92abfd31eb7b217dcb88e490b3d0e02",
"newAatrueype": "2",
"receiverList": "wxid_1gdwolwrn5hs22,1,5,0",//发起人微信号,收款状态?3 = 已收齐,2 = 有人支付,1 = 无人支付,参与人数,已支付人数
"payerList": "wxid_tzp39rgo8r9u22,2,1|wxid_m90g9psrmdbf22,2,1|wxid_afhuw9rhn5dy22,2,1|wxid_1mel9kj31aft22,2,1|wxid_0080250784612,2,1"//支付人微信号,需支付金额(单位:分),支付状态:1 = 未支付,2 = 已支付
},
"m7trueype": "0"
},
"content": ""
}
群收款提示
- 类型 114
- 数据结构:
wxMessage中的msg,json格式的字符串
{
"content": "@菜头 @「卷心菜」 @呵呵😄 @电信手机📱 @余林呱\n你有一笔未支付的群收款", //消息内容
"payId": "0db48218eb1a54d77489c9bb4fcd80b50b2aa1cb9846f6a12cb53f24f8ce45a910f32bdc64fc4d5eaf51bbf30ed4c4d" //收款支付Id
}
转账
- 类型:115
- 数据结构
wxMessage中的msg,json格式的字符串
{
"title": "微信转账",
"des": "收到转账0.01元。如需收钱,请点此升级至最新版本",
"type": "2000",
"content": "",
"url": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/common_page__upgrade\u0026text=text001\u0026btn_text=btn_text_0",
"thumbUrl": "https://support.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/common_page__upgrade\u0026text=text001\u0026btn_text=btn_text_0",
"lowurl": "",
"extinfo": "",
"wcPayInfo": {
"paySubtrueype": "3", //转账类型
"feeDesc": "¥0.01", //转账金额
"transcationId": "100005010119060500024224115148949337",//交易Id
"transferId": "1000050101201906051703664585970",//转账Id
"invalidtrueime": "1559813867",//失效时间
"begintrueransfertrueime": "1559727467",//开始时间
"effectiveDate": "1",
"payMsgId": "",
"payMemo": "",//转账附加消息
"hastrueransferAddress": "",
"m7trueype": "2" //领取类型
}
}
内部字段解释
paySubType | 解释 |
---|---|
1 | 实时转账 |
3 | 实时转账收钱回执 |
4 | 转账退还回执 |
5 | 非实时转账收钱回执 |
7 | 非实时转账 |
m7Type | 解释 |
---|---|
0 | 未领取 |
1 | 已被领取(paySubType==1,7) |
2 | 已领取(paySubType==3) |
3 | 已退还(paySubType==1,4,7) |
4 | 已领取待入账(paySubType==5,7) |