获取会话消息
GET
/open-api/chat/message/list调用前需进入微伴后台API页面 - 阅读并同意API使用条款 获取指定会话中的消息记录。
考虑到聊天记录随时可能新增新的聊天消息,因此聊天的翻页采用 last_id 参数。提供此参数时,将会获取 指定消息以前 的消息。
由于数据条数总量可能很多,暂不提供总量字段,请在抓取时判断返回列表长度。如果列表长度不足设置的 limit 值(默认30),则说明没有更多数据。
各个消息类型 content 的定义如下
注:下列定义均来自企业微信文档,微伴只对其进行存储
class TextMsgData(TypedDict):
""" 文字消息体 """
content: str # 消息内容
class ImageMsgData(TypedDict):
""" 图片消息体 """
sdkfileid: str # 媒体资源的id信息
md5sum: str # 图片资源的md5值
filesize: str # 图片资源的文件大小
class RevokeMsgData(TypedDict):
""" 撤回消息体 """
pre_msgid: str # 标识撤回的原消息的msgid
class AgreeMsgData(TypedDict):
""" 同意消息体 """
userid: str # 同意协议者的userid,外部企业默认为openid
agree_time: int # 同意协议的时间,utc时间,ms单位
class VoiceMsgData(TypedDict):
""" 语音消息体 """
voice_size: int # 语音消息大小
play_length: int # 播放长度
sdkfileid: str # 媒体资源的id信息
md5sum: str # 图片资源的md5值
class VideoMsgData(TypedDict):
""" 视频消息体 """
sdkfileid: str # 媒体资源的id信息
md5sum: str # 图片资源的md5值
filesize: str # 图片资源的文件大小
play_length: int # 视频播放长度
class CardMsgData(TypedDict):
""" 名片消息体 """
corpname: str # 名片所有者所在的公司名称
Userid: str # 名片所有者的id,同一公司是userid,不同公司是openid
class LocationMsgData(TypedDict):
""" 位置消息体 """
longitude: float # 精度,单位double
latitude: float # 维度,单位double
address: str # 地址信息
title: str # 位置信息的title
zoom: int # 缩放比例
class EmotionMsgData(TypedDict):
""" 表情消息体 """
type: int # 表情类型,png或者gif.1表示gif 2表示png
width: int # 表情图片宽度
height: int # 表情图片高度
sdkfileid: str # 媒体资源的id信息
md5sum: str # 图片资源的md5值
imagesize: int # 资源的文件大小。Uint32类型
class FileMsgData(TypedDict):
""" 文件消息体 """
sdkfileid: str # 媒体资源的id信息
md5sum: str # 图片资源的md5值
filename: str # 文件名称
fileext: str # 文件类型后缀
filesize: int # 文件大小
class LinkMsgData(TypedDict):
""" 链接消息体 """
title: str # 消息标题
description: str # 消息描述
link_url: str # 链接url地址
image_url: str # 链接图片url
class WeappMsgData(TypedDict):
""" 小程序消息体 """
title: str # 消息标题
description: str # 消息描述
username: str # 用户名称
Displayname: str # 小程序名称
class ChatrecordItem(TypedDict):
""" 聊天记录单条内容 """
type: str # 消息记录类型,和 ChagMsg.mstype 类似
msgtime: int # 消息时间,utc时间,单位是秒
content: str # 消息内容。Json串,内容为对应类型的json
from_chatroom: bool # 是否来自群会话
class ChatrecordMsgData(TypedDict):
""" 聊天记录消息体 """
title: str # 聊天记录标题
item: List[ChatrecordItem] # 消息记录内的消息内容,批量数据
class RedpacketMsgData(TypedDict):
""" 红包消息体 """
type: int # 类型 1:一对一红包, 2:群聊拼手气红包,3:群聊专属红包
wish: str # 留言
totalcnt: int # 总个数
totalamount: int # 总金额,单位分
class TodoMsgData(TypedDict):
""" 待办消息体 """
title: str # 代办的来源文本
content: str # 代办的具体内容
class VoteMsgData(TypedDict):
""" 投票消息体 """
votetitle: str # 投票主题
voteitem: str # 投票选项
votetype: int # 投票类型.101发起投票、102参与投票
voteid: str # 投票id,方便将参与投票消息与发起投票消息进行前后对照
class CollectMsgDataDetailItem(TypedDict):
""" 填表消息填写项目 """
id: int # 表项id
ques: str # 表项名称
type: str # 值类型,可能为 "Text"|"Number"|"Date"|"Time"
class CollectMsgData(TypedDict):
""" 填表消息体 """
room_name: str # 填表消息所在的群名称
creator: str # 创建者在群中的名字
create_time: str # 创建的时间
title: str # 表名
details: List[str] # 表内容。json数组,值为 CollectMsgDataDetailItem
class MeetingMsgData(TypedDict):
""" 会议邀请消息体 """
topic: str #会议主题
starttime: int # 会议开始时间。Utc时间
endtime: int # 会议结束时间。Utc时间
address: str # 会议地址
remarks: str # 会议备注
meetingtype: int # 会议消息类型。101发起会议邀请消息、102处理会议邀请消息
meetingid: int # 会议id。方便将发起、处理消息进行对照。
status: int # 会议邀请处理状态。1 参加会议、2 拒绝会议、3 待定
class DocmsgMsgData(TypedDict):
""" 会议邀请消息体 """
title: str # 在线文档名称
link_url: str # 在线文档链接
doc_creator: str # 在线文档创建者。为企业员工id或外部联系人id
class MarkdownMsgData(TypedDict):
""" Markdown格式消息体 """
content: str # markdown消息内容,目前为机器人发出的消息
class NewsMsgData(TypedDict):
""" 图文消息体 """
title: str # 图文消息标题
description: str # 图文消息描述
url: str # 图文消息点击跳转地址
picurl: str # 图文消息配图的url
class CalendarMsgData(TypedDict):
""" 日程消息体 """
title: str # 日程主题
creatorname: str # 日程组织者
attendeename: str # 日程参与人
starttime: int # 日程开始时间。Utc时间,单位秒
endtime: int # 日程结束时间。Utc时间,单位秒
place: str # 日程地点
remarks: str # 日程备注
调用此接口需购买会话席位。
请求参数
Query 参数
staff_id
string
必需
示例值:
WuYaJun
session_id
string
必需
limit
integer
可选
默认范围30-100
示例值:
30
last_id
integer
可选
返回值message_list中最后一个item的id
示例代码
返回响应
成功(200)
HTTP 状态码: 200
内容格式: JSONapplication/json
数据结构
message_list
array [object]
必需
total
integer
总数
示例
{
"errcode": 0,
"errmsg": "ok",
"total": 2,
"message_list": [
{
"id": 1,
"created_at": 1579434300,
"original_id": "1429143826468815703_1579434160",
"type": "text",
"time": 1579434160,
"from_id": "zhangsan",
"to_id": "wo8xjUCAAAtHYL_MZJby_7lRz0QE1kWw"
"from_name": "张三",
"from_avatar": "http://wework.qpic.cn/wwhead/duc2TvpEgSSWiaVLaJnssaYfX71u0Rya0GdmcJWhR6qBgbjkqiaSIKkicTy1wVhr9tQoTMP4rCxFLM/0",
"content": {"content": "啦啦"},
"direction": "send",
"file_url": null,
"room_id": null,
"staff_id": "zhangsan",
"text_content": "啦啦"
},
{
"id": 2,
"created_at": 1579434300,
"original_id": "1429143826468815703_1579434160",
"type": "text",
"time": 1579434160,
"from_id": "lisi",
"to_id": "zhangsan",
"from_name": "李四",
"from_avatar": "http://wework.qpic.cn/bizmail/R8eDSoIIqQoNeu65ylicWQ3bhE2F2j6h0CBWjfII8bicI2aXnDKMfB8A/0",
"content": {"content": "呵呵"},
"direction": "receive",
"file_url": null,
"room_id": null,
"staff_id": "zhangsan",
"text_content": "呵呵"
}
]
}
最后修改时间: 9 个月前