• 摘要
  • 设计目的
  • 依赖条件
  • 功能描述
  • 使用方法
  • 示例
  • 源代码
  • 参考文献

摘要

本程序实现定时向指定微信群发送指定消息的功能。
主要工具如下:
- python2.7编写;
- itchat提供微信API接口,实现进行向群组发送消息;
- apscheduler提供定时器功能。
代码下载请到我的github仓库。

设计目的

最开始只是想能不能做一个程序,可以定时在周二,四,六晚上10点半提醒组员们上传日志,所以就开始了搜索。发现itchat这个超级好用的工具,在apscheduler的加持下最终编了这么一个程序。灵感总是来源于生活….

当然itchat的功能远不止是发送个群消息而已,它提供的微信API接口还可以做很多有意思的东西,比如最常见的机器人自动回复,还可以接入其他应用程序接口用微信号做一些小应用(如自动播放歌曲,返回天气信息等)。

依赖条件

Written in python2.7.12
- itchat 1.3.10
- APScheduler 3.5.1

功能描述

定义文件中的发送时间time,发送群组名roomName,发送消息context(消息中含中文字符时应该使用unicode编码)。
运行后会在time对应时间,往roomName对应群组,发送context对应的消息。

使用方法

  • 修改onTimeMsgSenderToChatroom.py文件中的timeroomNamecontext设置为自己需要的参数。具体参考如下:
roomName = u'两张王'
context=u'该消息由程序自动发送'
time = {'day_of_week':'*','hour':12,'minute':34,'second':26}
  • 运行python onTimeMsgSenderToChatroom.py;
  • 扫描QR码,自动登陆成功后,等待信息自动发送即可。

示例

以下是用按照上述设置运行源代码向微信群发送的消息的截图。

源代码

需要下载请到我的github。

# -*- coding:utf-8 -*-import itchat
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingSchedulerclass onTimeSender(object):'''Automatically send message to chatroom on time according to user's predefinition.params:`roomName`: The name of chatroom you want to send message to;`context`: The message you want to send to chatroom;`time`: Time to send out message, in form of a dict.Usage:Please refer to the __main__ function part.'''def __init__(self,roomName='',context='',time={}):self.roomName=roomNameself.context=contextself.time=time  itchat.auto_login(hotReload=True,loginCallback=self.loginCallback,exitCallback=self.exitCallback)self.schedulerForSender()def sendChatroomMsg(self,roomName,context):itchat.get_chatrooms(update=True)roomNickName = roomNamecandidates = itchat.search_chatrooms(roomNickName)print candidatesusername = ''for candidate in candidates:if candidate['NickName'] == roomNickName:username = candidate['UserName']breakif username:sendtime = datetime.now().strftime('%A %B %d,%Y')#Tue June 08,2018sendtime = datetime.now().strftime('%m-%d-%Y %H:%M:%S,%A')msg = context + "Sending in "+sendtimeprint "Ready to send message to group %s,message as follows : \n%s"%(roomName,msg)itchat.send_msg(msg=msg,toUserName=username)def loginCallback(self):print "Successfully logged in."def exitCallback(self):print "Successfully logged out."def sendMsgToChatRoom(self):self.sendChatroomMsg(self.roomName,self.context)def schedulerForSender(self):# scheduler setupscheduler = BlockingScheduler()scheduler.add_job(self.sendMsgToChatRoom,'cron',day_of_week=self.time['day_of_week'],hour=self.time['hour'],minute=self.time['minute'],second=self.time['second'])# sending takes 4 seconds behindscheduler.start()if __name__=='__main__':roomName = 'DVS_Group'context = u'通知上传日志'time = {'day_of_week':'tue,thu,sat','hour':22,'minute':24,'second':56}'''for testingroomName = u'两张王'context=u'该消息由程序自动发送'time = {'day_of_week':'*','hour':12,'minute':34,'second':26}'''onTimeSender(roomName,context,time)

参考文献

apscheduler使用
itchat使用文档

微信定时自动发送群消息的小工具-python-itchat相关推荐

  1. python定时发送微信消息_Python3 itchat实现微信定时发送群消息的实例代码

    一.简介 1,使用微信,定时往指定的微信群里发送指定信息. 2,需要发送的内容使用excel进行维护,指定要发送的微信群名.时间.内容. 二.py库 1,itchat:这个是主要的工具,用于连接微信个 ...

  2. PC版微信快捷聊天回复助手小工具

    这是一款支持微信多开可切换,支持微信窗口左右吸附 支持快捷回复的小公举,适用于做客服,做微商销售的朋友, 以前在公司上班用过,能快速方便管理微信好友,大大提高工作效率. 下载地址:PC版微信快捷聊天回 ...

  3. pdf合并小工具python

    这里写自定义目录标题 前言 代码 前言 使用python写了个合并pdf的小工具,共享代码 相对比较简陋,将就着看吧,需要的可以自己再润色一下 代码 from os import rename fro ...

  4. 微信消息防撤回 + 智能聊天机器 Python itchat实现

    应用背景 xxx撤回了一条消息 有时遇到这种情况是不是感觉被吊着胃口,对方到底撤回了什么消息呢?好想知道啊: 还有时候会加到一些营销号甚至是骗子,这时使用机器人模式自动回复他岂不快哉,或者可以让朋友像 ...

  5. 使用Python实现量化交易机器人定时启动或停止小工具

    个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 作为全网功能强大.灵活易用的量化交易平台,发明者量化交易平台虽然使用门槛非常低,机器人程序占用资源很少.但是我们依然希望,让机器人需 ...

  6. 超好用的QQ微信TIM防撤回开源小工具

    简介: 分享一个好用的QQ微信防撤回工具补丁,来源是今天一朋友分享给我的,他今天突然给我发信息说给我分享一个很好用的工具,我一看,是个防撤回工具,我寻思市面上那么多防撤回工具,他怎么今天突然给我分享这 ...

  7. ADB操作手机的一个界面小工具(python实现)

    我们经常使用adb命令操作手机,因此我突然想到做一个界面把这些命令用界面点击的形式操作,这样可以简化我们平时敲命令的时间,工具的功能尚不完善,先总结一下思路.首先先把工具的界面展示一下: 首先讲一下工 ...

  8. 显示器定时开启和关闭小工具

    前几天,按照学院要求,学校几个LED屏幕要连续几天播放指定内容PPT,当时没有用LED自带的管理软件(因为那个软件操作起来太麻烦了),没有设置定时开启关闭显示器按钮.半夜屏幕还是开启的,结果晚上1点多 ...

  9. 【Java】企业微信机器人自动发送群消息

    1.先在群里添加机器人,然后获取机器人的webhook地址: 假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a9 ...

  10. python编写测试小工具-Python与游戏测试(小工具篇)

    import datetime import paramiko import time import os class ScanError(object): def __init__(self): s ...

最新文章

  1. cuGraph-GPU图形分析
  2. Xpath语法-爬虫(一)
  3. windows 7 网卡物理地址修改方法
  4. MySQL 索引和 SQL 调优手册
  5. IDE--ubuntu下安装 Source insight
  6. Latex 调整表格大小 表格过大 表格过小
  7. Minimum Sum LCM(uva10791+和最小的LCM+推理)
  8. Python-模块和包.深入Celery之子任务及原语组式/链式/回调
  9. 力扣-1290 二进制链表转整数
  10. android医疗管理软件,智能医疗信息管理系统(医院版)
  11. 真心实用!Python 办公自动化之 PDF 的详细操作(全)
  12. 怎样使用摹客在线原型实现自动轮播图
  13. ciscotftp服务器(ciscotftp服务器下载)
  14. 计算机用户帐号 MAC地址怎么查,mac地址怎么查
  15. axure命令行_axure怎么计算器
  16. java bean prototype_Spring原型bean-prototype不能销毁? 转载
  17. 【人工智能】机器人的未来发展:从工业自动化到知识自动化
  18. webpack创建react项目
  19. 阻止网页操作完成后的页面自动跳转
  20. 醒醒吧,月入3000的年轻人,你已经没救了

热门文章

  1. JAVA开源B2C系统
  2. 21天学通C语言-学习笔记(7)
  3. Oracle函数写法和举例
  4. c语言递归算法简单例子加讲解,递归算法经典例子C语言实现递归算法
  5. github客户端的使用方法教程
  6. Android端公司通讯录开发与实现(二)
  7. [iOS开发]autolayout自动布局
  8. canon lbp6200 macos下单面双面打印设置
  9. DDoS攻击的工具介绍
  10. Nginx主配置文件的优化-nginx主配置文件的优化