发送带好友名称的群发消息

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'])


上一篇下一篇

猜你喜欢

热点阅读