运用python实现企业微信群机器人消息推送

使用场景:将BI报表精准推送入(群),精准触达用户
目的:提高管理层对数据的感知度
工具:python+企业微信
步骤:
1、创建企业微信群机器人,提取Webhook地址(群机器人地址)
2、编写代码填充推送内容信息实现推送
3、其他需求自定义代码编写

1. 将BI报表推送到群

import requests
from datetime import datetime

def fun():
    URL = '机器人地址'
    mHeader = {'Content-Type': 'application/json; charset=UTF-8'}
    mBody = {
    "msgtype": "news",
    "news": {
       "articles" : [
           {
               "title" : "#标题",
               "description" : "#说明",
               "url" : "#推送链接",
               "picurl" : "图片链接"
           }
        ]
    }
}
    # 注意:json=mBody  必须用json    
    requests.post(url=URL, json=mBody, headers=mHeader)
 
 
if __name__ == '__main__':
    fun()


a="推送消息文案,比如【这是今日的运营报表最新数据,请查收】"
url = '机器人的webhook地址' #机器人的webhook地址
headers = {'Content-type':'application/json'}
data = {
    "msgtype": "text",
    "text": {
        "content": a, #要发送的文字
        "mentioned_list": ["@all"], #要@的人,可以是特定的人的工号或手机号
        }
    }


r = requests.post(url,headers=headers,json=data)
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"),"文本发送情况提示",r.text)


2. 群消息推送

实现方法1–优化后

from __future__ import print_function
import time
import schedule
import requests

from datetime import datetime
now = datetime.now() # current date and time

**#微信机器人地址**
url = '企业微信机器人地址'

**# 当前时间**
load_time = now.strftime('%Y-%m-%d %H:%M:%S')

**#不同时间段的文案内容**
#zaoqi1 = '起床上班了哈哈哈'
morning1 = '大家早上号,又是努力的一天,大家加油鸭!'
#wucan1 = '伙伴们,午餐时间到,一定要记得准时吃饭哦!'
afternoon1 = '人生道路上的每一个里程碑,都刻着“起点”两个字。大家下午好'
evening1 = '全公司最努力的小伙伴们,下班了,记得好好放松一下哦'
daily1 = '伙伴们,要发日报了哦!未发的,明日下午茶你安排!'
goodnight1 = '夜深人静,睡意绵绵~晚安!'

#自定义的函数名称、函数参数
def greetings(greet):
    data = {
        'msgtype': 'text',#推送消息类型
        'text': {'content': f'{greet} ',#调用函数参数
        "mentioned_list": ["@all"],#@的人员,也可以是单独的工号、手机号
        }
    }
    requests.post(url, json=data)



# 调用函数和文案每天的指定时间执行
schedule.every().day.at('08:30').do(greetings, morning1 )
#schedule.every().day.at('10:15').do(greetings, morning1 )
schedule.every().day.at('14:00').do(greetings, afternoon1)
schedule.every().day.at('18:00').do(greetings, evening1)
schedule.every().day.at('20:00').do(greetings, daily1)
schedule.every().day.at('22:00').do(greetings, goodnight1)


while True:
    # 运行所有可以运行的任务进行推送
    schedule.run_pending()
    print(load_time)
    time.sleep(1)

实现方法2-优化前

from __future__ import print_function
import time
import schedule
import requests

from datetime import datetime
now = datetime.now() # current date and time


url = '机器人地址'
# 当前时间为
load_time = now.strftime('%Y-%m-%d %H:%M:%S')

#文案内容
#zaoqi1 = '起床上班了哈哈哈'
morning1 = '优秀的小伙伴们,大家早上好,充满活力的一天开始啦,大家加油鸭!'
#wucan1 = '伙伴们,午餐时间到,一定要记得准时吃饭哦!大家今天吃啥呢?'
afternoon1 = '人生道路上的每一个里程碑,都刻着“起点”两个字。全公司最棒的小伙伴们,下午好!'
evening1 = '全公司最努力的小伙伴们,该用膳了!今日晚膳我请客,自己掏钱,嘿嘿嘿!'
daily1 = '伙伴们,要发日报了喂!未发的,明日下午茶你安排!'
goodnight1 = '夜深人静,睡意绵绵~明天又是活力满满的一天!!晚安!'


def morning():
    data = {
        'msgtype': 'text',
        'text': {'content': f'{morning1} \n记得打上班卡哈',
        "mentioned_list": ["@all"],
        }
    }
    requests.post(url, json=data)

def afternoon():
    data = {
        'msgtype': 'text', 
        'text': {'content': f'{afternoon1} ',
         "mentioned_list": ["@all"],
         }
    }
    requests.post(url, json=data)


def evening():
    data = {
        'msgtype': 'text',
        'text': {'content': f'{evening1} \n记得打下班卡哈',
        "mentioned_list": ["@all"]
        }
    }
    requests.post(url, json=data)
    
def daily(): 
    data = {
        'msgtype': 'text',
        'text': {'content': f'{daily1}',
        "mentioned_list": ["@all"]
        }
    }
    requests.post(url, json=data)
    
def goodnight():
    data = {
        'msgtype': 'text', 'text': {'content': f'{goodnight1}'},
        "mentioned_list": ["@all"]
        }
    requests.post(url, json=data)


# 每天的指定时间执行
schedule.every().day.at('08:30').do(morning)
schedule.every().day.at('14:00').do(afternoon)
schedule.every().day.at('18:00').do(evening)
schedule.every().day.at('20:00').do(daily)
schedule.every().day.at('22:00').do(goodnight)

'''

# 10分钟执行一次
schedule.every(10).minutes.do(morning)
schedule.every(15).minutes.do(afternoon)
schedule.every(20).minutes.do(evening)
schedule.every(25).minutes.do(daily)
schedule.every(30).minutes.do(goodnight)
'''

'''
# 每隔5天到10天执行一次
schedule.every(5).to(10).days.at('00:00').do(morning)
schedule.every(5).to(10).days.at('00:00').do(evening)
# 每周一的这个时候执行一次任务
schedule.every().monday.do(morning)
# 每周三00:03执行一次任务
schedule.every().wednesday.at('00:03').do(morning)
'''

while True:
    # 运行所有可以运行的任务
    schedule.run_pending()
    print(load_time)
    time.sleep(1)

参考链接
python+群机器人自动化推送
python+群机器人自动化推送
python+群机器人自动化推送
企业微信官方文档分享

你可能感兴趣的:(python应用,python,企业微信,机器人)