wechatpy.enterprise.client.api.chat 源代码

# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals

from optionaldict import optionaldict

from wechatpy.client.api.base import BaseWeChatAPI


[文档]class WeChatChat(BaseWeChatAPI): """ “微信企业号”旧接口,企业微信请使用 appchat。 """
[文档] def create(self, chat_id, name, owner, user_list): """ 创建会话 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param chat_id: 会话id。字符串类型,最长32个字符。只允许字符0-9及字母a-zA-Z, 如果值内容为64bit无符号整型:要求值范围在[1, 2^63)之间, [2^63, 2^64)为系统分配会话id区间 :param name: 会话标题 :param owner: 管理员userid,必须是该会话userlist的成员之一 :param user_list: 会话成员列表,成员用userid来标识。会话成员必须在3人或以上,1000人以下 :return: 返回的 JSON 数据包 """ return self._post( 'chat/create', data={ 'chatid': chat_id, 'name': name, 'owner': owner, 'userlist': user_list, } )
[文档] def get(self, chat_id): """ 获取会话 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param chat_id: 会话 ID :return: 会话信息 """ res = self._get('chat/get', params={'chatid': chat_id}) return res['chat_info']
[文档] def update(self, chat_id, op_user, name=None, owner=None, add_user_list=None, del_user_list=None): """ 修改会话 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param chat_id: 会话 ID :param op_user: 操作人 userid :param name: 会话标题 :param owner: 管理员userid,必须是该会话userlist的成员之一 :param add_user_list: 会话新增成员列表,成员用userid来标识 :param del_user_list: 会话退出成员列表,成员用userid来标识 :return: 返回的 JSON 数据包 """ data = optionaldict( chatid=chat_id, op_user=op_user, name=name, owner=owner, add_user_list=add_user_list, del_user_list=del_user_list, ) return self._post('chat/update', data=data)
[文档] def quit(self, chat_id, op_user): """ 退出会话 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param chat_id: 会话 ID :param op_user: 操作人 userid :return: 返回的 JSON 数据包 """ return self._post( 'chat/quit', data={ 'chatid': chat_id, 'op_user': op_user, } )
[文档] def clear_notify(self, op_user, type, id): """ 清除会话未读状态 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param op_user: 会话所有者的userid :param type: 会话类型:single|group,分别表示:单聊|群聊 :param id: 会话值,为userid|chatid,分别表示:成员id|会话id :return: 返回的 JSON 数据包 """ return self._post( 'chat/clearnotify', data={ 'op_user': op_user, 'chat': { 'type': type, 'id': id, } } )
[文档] def set_mute(self, user_mute_list): """ 设置成员新消息免打扰 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param user_mute_list: 成员新消息免打扰参数,数组,最大支持10000个成员 :return: 返回的 JSON 数据包 """ return self._post( 'chat/setmute', data={'user_mute_list': user_mute_list} )
[文档] def send_text(self, sender, receiver_type, receiver_id, content): """ 发送文本消息 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param sender: 发送人 :param receiver_type: 接收人类型:single|group,分别表示:单聊|群聊 :param receiver_id: 接收人的值,为userid|chatid,分别表示:成员id|会话id :param content: 消息内容 :return: 返回的 JSON 数据包 """ data = { 'receiver': { 'type': receiver_type, 'id': receiver_id, }, 'sender': sender, 'msgtype': 'text', 'text': { 'content': content, } } return self._post('chat/send', data=data)
[文档] def send_single_text(self, sender, receiver, content): """ 发送单聊文本消息 :param sender: 发送人 :param receiver: 接收人成员 ID :param content: 消息内容 :return: 返回的 JSON 数据包 """ return self.send_text(sender, 'single', receiver, content)
[文档] def send_group_text(self, sender, receiver, content): """ 发送群聊文本消息 :param sender: 发送人 :param receiver: 会话 ID :param content: 消息内容 :return: 返回的 JSON 数据包 """ return self.send_text(sender, 'group', receiver, content)
[文档] def send_image(self, sender, receiver_type, receiver_id, media_id): """ 发送图片消息 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param sender: 发送人 :param receiver_type: 接收人类型:single|group,分别表示:单聊|群聊 :param receiver_id: 接收人的值,为userid|chatid,分别表示:成员id|会话id :param media_id: 图片媒体文件id,可以调用上传素材文件接口获取 :return: 返回的 JSON 数据包 """ data = { 'receiver': { 'type': receiver_type, 'id': receiver_id, }, 'sender': sender, 'msgtype': 'image', 'image': { 'media_id': media_id, } } return self._post('chat/send', data=data)
[文档] def send_single_image(self, sender, receiver, media_id): """ 发送单聊图片消息 :param sender: 发送人 :param receiver: 接收人成员 ID :param media_id: 图片媒体文件id,可以调用上传素材文件接口获取 :return: 返回的 JSON 数据包 """ return self.send_image(sender, 'single', receiver, media_id)
[文档] def send_group_image(self, sender, receiver, media_id): """ 发送群聊图片消息 :param sender: 发送人 :param receiver: 会话 ID :param media_id: 图片媒体文件id,可以调用上传素材文件接口获取 :return: 返回的 JSON 数据包 """ return self.send_image(sender, 'group', receiver, media_id)
[文档] def send_file(self, sender, receiver_type, receiver_id, media_id): """ 发送文件消息 详情请参考 https://qydev.weixin.qq.com/wiki/index.php?title=企业会话接口说明 :param sender: 发送人 :param receiver_type: 接收人类型:single|group,分别表示:单聊|群聊 :param receiver_id: 接收人的值,为userid|chatid,分别表示:成员id|会话id :param media_id: 文件id,可以调用上传素材文件接口获取, 文件须大于4字节 :return: 返回的 JSON 数据包 """ data = { 'receiver': { 'type': receiver_type, 'id': receiver_id, }, 'sender': sender, 'msgtype': 'file', 'file': { 'media_id': media_id, } } return self._post('chat/send', data=data)
[文档] def send_single_file(self, sender, receiver, media_id): """ 发送单聊文件消息 :param sender: 发送人 :param receiver: 接收人成员 ID :param media_id: 文件id,可以调用上传素材文件接口获取, 文件须大于4字节 :return: 返回的 JSON 数据包 """ return self.send_file(sender, 'single', receiver, media_id)
[文档] def send_group_file(self, sender, receiver, media_id): """ 发送群聊文件消息 :param sender: 发送人 :param receiver: 会话 ID :param media_id: 文件id,可以调用上传素材文件接口获取, 文件须大于4字节 :return: 返回的 JSON 数据包 """ return self.send_file(sender, 'group', receiver, media_id)