Python微信机器人制作教程

44 篇文章 0 订阅
40 篇文章 0 订阅

最近微信群里朋友们聊天,年纪大了需要养生了,每天八杯水~想着是否可以实现一个微信机器人每天定时给群内发消息提醒喝水的功能。

查阅资料发现微信开源了微信个人号接口gewe,可以使用python调用接口。

GeWe框架

登录微信发送消息只需要三行代码

代码语言:javascript

import itchat
itchat.auto_login()
itchat.send('Hello, filehelper', toUserName='filehelper')

所以我们实现一个定时机器人只需要以下几步:

  1. 使用itchat登录网页版微信
  2. 获取提醒器的user_name
  3. 实现定时机制
  4. 定点发送消息

完整代码如下:

代码语言:javascript

import time
import itchat

# 设置喝水时间
SEND_TINES = ["09:00", "10:00", "11:00", "12:00",  "14:00", "15:00", "16:00", "17:00"]
    
def drink_water_reminder(target_nick_names):
    target_user_names = []
    # 需要将群聊要添加到通讯录,不然get_chatrooms只显示最近聊天的群聊
    # 添加方法:群--右上角更多--添加到通讯录
    groups = itchat.get_chatrooms(update=False)
    for g in groups:
        for target_nick in target_nick_names:
            if target_nick in g["NickName"]:
                target_user_names.append(g["UserName"])
    # 待优化为定时器
    while True:
        time.sleep(60)
        now_time = time.strftime("%H:%M", time.localtime(time.time()))
        for i in range(0, len(SEND_TINES)):
            if now_time == SEND_TINES[i]:
                msg = "今天第{}次提醒喝水。".format(i + 1)"
                for target_user_name in target_user_names:
                    itchat.send_msg(msg, target_user_name)



if __name__ == '__main__':
    # 登录网页版微信
    itchat.auto_login()
    # 设置提醒群昵称
    target_nick_names = ["提醒群1", "提醒群2"]
    # 定时提醒喝水
    drink_water_reminder(target_nick_names)

同样我们也可以自定义一个节假日祝福机器人~祝大家节日快乐~

代码语言:javascript

def calendar_reminder(target_nick_names):
    target_user_names = []
    groups = itchat.get_chatrooms(update=False)
    for g in groups:
        for target_nick in target_nick_names:
            if target_nick in g["NickName"]:
                target_user_names.append(g["UserName"])
    # 发送时间点
    send_times = ["09:00"]
    while True:
        # 1小时监测一次
        time.sleep(60*60)
        # 获取当前日期
        date = datetime.datetime.now().date()
        # 获取当前时间
        now_time = time.strftime("%H:%M", time.localtime(time.time()))
        for i in range(0, len(send_times)):
            # 是节假日并且到时间点,发送提醒消息
            if now_time == send_times[i] and is_holiday(date):
                msg = "@所有人 节日快乐!身体健康!"
                for target_user_name in target_user_names:
                    itchat.send_msg(msg, target_user_name)

参考:http://doc.geweapi.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值