参考:实现群聊本地图片【base64编码】上传及其发送 by SlieFamily ·拉取请求 #199 ·腾讯连接/Botpy (github.com)
首先找到api.py,如果你是通过pip安装的botpy。找到包对应的地址,如果是clone的,也直接找到api.py。
打开后,翻到最下面,有两个函数post_group_file和post_c2c_file。我们在这里添加我们使用base64上传的函数。post_group_base64file和post_c2c_base64file。
库
async def post_group_file(
self,
group_openid: str,
file_type: int,
url: str,
srv_send_msg: bool = False,
) -> message.Media:
"""
上传/发送群聊图片
Args:
group_openid (str): 您要将消息发送到的群的 ID
file_type (int): 媒体类型:1 图片png/jpg,2 视频mp4,3 语音silk,4 文件(暂不开放)
url (str): 需要发送媒体资源的url
srv_send_msg (bool): 设置 true 会直接发送消息到目标端,且会占用主动消息频次
"""
payload = locals()
payload.pop("self", None)
route = Route("POST", "/v2/groups/{group_openid}/files", group_openid=group_openid)
return await self._http.request(route, json=payload)
async def post_group_base64file(
self,
group_openid: str,
file_type: int,
file_data: str,
srv_send_msg: bool = False,
) -> message.Media:
"""
上传/发送群聊图片
Args:
group_openid (str): 您要将消息发送到的群的 ID
file_type (int): 媒体类型:1 图片png/jpg,2 视频mp4,3 语音silk,4 文件(暂不开放)
file_data (str): 二进制文件的base64编码,可用于代替网络url资源,实现本地上传文件
srv_send_msg (bool): 设置 true 会直接发送消息到目标端,且会占用主动消息频次
"""
payload = locals()
payload.pop("self", None)
route = Route("POST",