利用Python制作微信机器人(一)

利用Python制作微信机器人(一)双十一时候,阿里云服务器打折。于是直接买了三年的阿里云服务器。自己也明白有一个云服务器说白了就是有一个公网IP+7*24h不关机的电脑。但买完服务器后,就不知道用这服务器来做点什么炫酷的事情了。这两天看到有某位海王做了个自动回复消息的机器人来给女朋友们回消息,是否可以用这个服务器来做一个自动回复消息的机器人。…

大家好,又见面了,我是你们的朋友全栈君。

双十一时候,阿里云服务器打折。于是直接买了三年的阿里云服务器。自己也明白有一个云服务器说白了就是有一个公网IP+7*24h不关机的电脑。但买完服务器后,就不知道用这服务器来做点什么炫酷的事情了。突然想到,最近一直在学python,我可以用python做一些自动化的事情。后来在网上看有人用python做了个微信自动化聊天的工具。但是这个工具是通过调用网页版微信api来进行通信的,而现在微信网页版已经不能使用了,所以这些api也就失效了。后来发现企业版微信是个神器,可以用企业微信来做一个自动回复的机器人。经过两天时间的摸索,终于做出了雏形。话不多说,先放成果。
在这里插入图片描述

1.简述

这个自动回复机器人,主要是用python的flask框架写了个微服务。给企业微信自定义应用发消息,会自动将消息转发到自己配置的后端,根据企业微信提供的解码算法,可以拿到所发的消息,再根据所发的消息进行相关回复,并将回复进行加密返回。

2.申请企业微信

https://work.weixin.qq.com/

在这里插入图片描述

3.创建应用

然后 应用管理 – 应用 – 自建
在这里插入图片描述
比如新建了个应用
在这里插入图片描述

4.编写脚本

记住自己的AgentId 和Secret ,在上方我的企业栏里
在这里插入图片描述
下面有个企业id
在这里插入图片描述
也记住这个id,然后按照下方的代码填入相应的id即可

def send2wechat(message):
    AgentId = 'xxxxx'
    Secret = 'xxxxx'
    CompanyId = 'xxxxx'
    # 通行密钥
    ACCESS_TOKEN = None
    # 如果本地保存的有通行密钥且时间不超过两小时,就用本地的通行密钥
    if os.path.exists('ACCESS_TOKEN.txt'):
        txt_last_edit_time = os.stat('ACCESS_TOKEN.txt').st_mtime
        now_time = time.time()
        if now_time - txt_last_edit_time < 7200:  # 官方说通行密钥2小时刷新
            with open('ACCESS_TOKEN.txt', 'r') as f:
                ACCESS_TOKEN = f.read()
                # print(ACCESS_TOKEN)
    # 如果不存在本地通行密钥,通过企业ID和应用Secret获取
    if not ACCESS_TOKEN:
        r = requests.post(
            f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CompanyId}&corpsecret={Secret}').json()
        ACCESS_TOKEN = r["access_token"]
        # print(ACCESS_TOKEN)
        # 保存通行密钥到本地ACCESS_TOKEN.txt
        with open('ACCESS_TOKEN.txt', 'w', encoding='utf-8') as f:
            f.write(ACCESS_TOKEN)
    # 要发送的信息格式
    data = { 
   
        "touser": "@all",
        "msgtype": "text",
        "agentid": f"{AgentId}",
        "text": { 
   "content": f"{message}"}
    }
    # 字典转成json,不然会报错
    data = json.dumps(data)
    # 发送消息
    r = requests.post(
        f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={ACCESS_TOKEN}', data=data)
    # print(r.json())

此段代码参考: https://www.jianshu.com/p/99f706f1e943

这样运行这个脚本就可以给我们自己的微信发消息了
在这里插入图片描述
下一节来教学如何给这个应用发消息,并且后端可以接收到消息。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149777.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 17个最佳WordPress画廊插件[通俗易懂]

    17个最佳WordPress画廊插件[通俗易懂]驯服混乱并改变您的内容。如果您想展示您的内容(帖子,图像,视频,音频文件以及您能想到的任何其他内容),从而为网站访问者带来引人入胜的体验,那么本文将帮助您做到这一点。在这里,我们重点介绍CodeCanyon上可用的一些最佳WordPress画廊插件。我们已按画廊类型对其进行了细分,因此请继续阅读以了解更多有关为什么这些是用于视频和多媒体,图像和WordPress网格的最佳WordPr…

    2022年5月28日
    116
  • 详解第一范式、第二范式、第三范式、BCNF范式

    详解第一范式、第二范式、第三范式、BCNF范式文章目录第一范式定义以及分析:问题研究:第二范式必备知识点函数依赖:码:非主属性:定义分析:解决办法:问题研究:第三范式:定义:分析:问题研究:BCNF范式分析问题研究小结:第一范式定义以及分析:首先是第一范式(1NF)。符合1NF的关系(你可以理解为数据表。“关系模式”和“关系”的区别,类似于面向对象程序设计中”类“与”对象“的区别。”关系“是”关系模式“的一个实例,你可以把”关系”理解…

    2022年6月12日
    34
  • 摄像头为什么要公网ip_安装监控为什么需要公网ip

    摄像头为什么要公网ip_安装监控为什么需要公网ip原标题:三种方法告诉你项目超过255个摄像机怎么设置IP?我们做弱电的,与ip地址接触最多,无论是弱电的哪方面,都需要跟ip地址打交道,通常我们也会经常听到公网、内网?那什么是公网ip地址呢?什么是私网ip地址呢?为什么我们常见到的ip地址以开头呢?还有就是一个网段只能容纳254个摄像机,但是我现在项目比较大,都有300多个摄像机了,该咋分配IP地址呢?我们今天统统来了解一下。首先关于内、外…

    2022年9月25日
    7
  • Linux 定时执行shell 脚本「建议收藏」

    Linux 定时执行shell 脚本「建议收藏」2019年第85篇文章,总第109篇文章本文大约2000字,阅读大约需要6分钟crontab可以在指定的时间执行一个shell脚本以及执行一系列Linux命令。定时执行sh…

    2025年8月30日
    6
  • kettle工具使用及集成[通俗易懂]

    kettle工具使用及集成[通俗易懂]kettle简介Kettle是一款免费开源的基于Java的企业级ETL工具,功能强大简单易用,无可抗拒。

    2022年10月9日
    4
  • 遗传算法(Genetic Algorithm)详解与实现「建议收藏」

    遗传算法(Genetic Algorithm)详解与实现「建议收藏」遗传算法(GeneticAlgorithm,GA)是受自然进化原理启发的一系列搜索算法。通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索、优化和学习的各种问题提供高质量的解决方案。同时,它们类似于自然进化,因此遗传算法可以克服传统搜索和优化算法遇到的一些障碍,尤其是对于具有大量参数和复杂数学表示形式的问题。

    2025年5月25日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号