编写一个python程序,用于阿里云服务器,要求:
1、自动转发微信群A的张三发的含有“某些字眼”的信息到B群(只转发张三发的信息);
2、可以持久运行,不能有间断。
自动转发微信群信息到另外一个微信群
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
19条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
为实现您所描述的需求,即在阿里云服务器上运行一个Python程序,自动转发微信群A中张三发布的含特定字眼的消息至微信群B,您可以按照以下步骤进行操作:
一、准备环境
-
获取微信API接口:由于微信官方并未提供官方API供第三方程序直接访问微信群聊内容,因此需要借助第三方库如
itchat(已停止维护)或Wechaty(基于Puppeteer,适用于个人账户)来实现微信的自动化操作。然而,这些方法可能违反微信用户协议,并且稳定性较差。若需长期稳定运行,建议使用企业微信(或类似支持API接口的服务)替代个人微信,以合法合规地获取和处理消息数据。 -
创建企业微信应用:在企业微信管理后台创建一个自建应用,为其赋予“消息接收”和“消息发送”权限。获取到AppID、AppSecret以及自建应用的唯一标识(AgentID),并确保张三和目标群组已加入企业微信。
-
获取永久授权码:通过企业微信提供的OAuth2流程,引导张三授权您的应用访问其消息数据。完成后,您将获得一个永久授权码(permanent_code),用于后续接口调用。
二、编写Python程序
以下是一个基于企业微信API接口的Python程序示例,使用
requests库进行HTTP请求:import requests import time # 企业微信API相关参数 CORP_ID = 'your_corp_id' APP_SECRET = 'your_app_secret' AGENT_ID = 'your_agent_id' PERMANENT_CODE = 'your_permanent_code' # 目标群聊ID TARGET_GROUP_CHAT_ID = 'your_target_group_chat_id' # 张三的企业微信UserID ZHANG_SAN_USER_ID = 'zhang_san_user_id' # 检测消息中是否包含的特定字眼列表 SPECIFIC_KEYWORDS = ['keyword1', 'keyword2'] def get_access_token(): url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={APP_SECRET}' response = requests.get(url) data = response.json() return data['access_token'] def get_latest_msgs(access_token, userid): url = f'https://qyapi.weixin.qq.com/cgi-bin/user/message/list?access_token={access_token}&userid={userid}&agentid={AGENT_ID}&limit=1' response = requests.get(url) data = response.json() return data['message_list'][0] if data['message_list'] else None def forward_msg_to_group(access_token, group_chat_id, msg_data): url = f'https://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token={access_token}' payload = { "chatid": group_chat_id, "msgtype": "text", "text": { "content": msg_data['content'] } } requests.post(url, json=payload) def main(): while True: access_token = get_access_token() latest_msg = get_latest_msgs(access_token, ZHANG_SAN_USER_ID) if latest_msg and any(keyword in latest_msg['content'] for keyword in SPECIFIC_KEYWORDS): forward_msg_to_group(access_token, TARGET_GROUP_CHAT_ID, latest_msg) # 暂定每分钟检查一次新消息 time.sleep(60) if __name__ == "__main__": main()三、部署到阿里云服务器
-
安装Python环境:在您的阿里云服务器上安装Python及相关依赖(如
requests库)。 -
配置定时任务:将上述Python程序作为定时任务运行,确保其持续监控张三的消息。具体操作取决于您使用的Linux发行版,一般可使用
cron服务进行设置。
注意事项:
- 请确保替换上述代码中的占位符(如
your_corp_id等)为实际值。 - 由于企业微信API存在访问频率限制,实际使用时可能需要增加错误处理及重试机制。
- 本示例仅转发文本消息,如需转发其他类型消息(如图片、文件等),需相应调整
forward_msg_to_group函数中的payload。
替代方案:
若不便使用企业微信,可考虑使用第三方微信机器人平台(如Server酱、酷Q等),它们通常提供更为稳定的接口供开发者接入。但请注意遵守相关平台的使用协议,避免滥用导致账号被封禁。
解决 无用评论 打赏 举报 编辑记录-