发送带好友名称的群发消息
2018-02-11 本文已影响137人
watson168
背景描述:
过年期间想要群发消息送祝福语,但是又不想让别人看出是群发,所以可以在发消息的前面加上好友的名称,这样看起来就是针对他个人单发发的,另外祝福语可以找多个放入一个列表中,随机选择祝福语送个好友。最后温馨提示:运行程序前,记得将一些“奇怪”的备注名修改过来,不然别人就会看到你给他的备注名是什么。
入口文件:SendMessageToAllFriends.py
import itchat
from conf import program_api
import time
import random
# list of greeting
Message = ['a', 'b', 'c']
def send_message():
NameList = program_api.Friends_message()
names = NameList.GetAllFriends()
for i in range(len(names)):
if names[i] == '':
print("没有备注这位朋友")
else:
program_api.Friends_message(
name=names[i], info=random.sample(
Message, 1)[0]).test() # test()测试使用,正式的时候换成send_info()
time.sleep(0.3)
if __name__ == '__main__':
itchat.auto_login(hotReload=True)
send_message()
模块文件program_api.py
'''
API 接口文档说明:
本api接口基于weixin itchat模块实现,程序直接调用即可,但应避免频繁调用,否则有可能被微信官方屏蔽掉
实现的主要功能:
1.获取所有的好友信息
2.发送特定消息给指定的用户
3.获取特定用户的所有个人信息
4.自动回复消息:仅包括文本, 繁忙时将最下方注释打开即可
'''
import itchat
from itchat.content import TEXT
class Friends_message(object):
def __init__(self, name='', info=''):
'''name:好友备注名称'''
self.name = name
self.info = info
def GetAllFriends(self):
'''获取所有好友信息'''
list_friends = []
friends = itchat.get_friends(update=True)[1:]
for i in range(len(friends)):
RemarkName = friends[i]['RemarkName']
list_friends.append(RemarkName)
return list_friends
def get_info_friend(self):
'''获取单个微信朋友的用户信息'''
user = itchat.search_friends(remarkName=self.name)
print(user)
def send_info(self):
'''info:发送信息给单个用户'''
user = itchat.search_friends(name=self.name)[0]['UserName']
itchat.send("%s" % (self.info), toUserName=user)
print('send info to %s success.' % (self.name))
def test(self):
print("send to %s success" % (self.name))
# @itchat.msg_register(TEXT, isFriendChat=True)
def Anserver_repy(msg):
'''自动向发送者回复消息'''
itchat.send_msg(
'已经收到了文本消息,消息内容为%s' % msg[TEXT], toUserName=msg['FromUserName'])