返回顶部
首页 > 资讯 > 后端开发 > Python >基于python实现微信模板消息
  • 131
分享到

基于python实现微信模板消息

模板消息python 2022-06-04 19:06:43 131人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

我的风格,废话不多说了,直接给大家贴代码了,并在一些难点上给大家附了注释,具体代码如下所示: #!/usr/bin/env python #-*- coding:utf-8 -*- import url

我的风格,废话不多说了,直接给大家贴代码了,并在一些难点上给大家附了注释,具体代码如下所示:


#!/usr/bin/env python
#-*- coding:utf-8 -*-
import urllib2,JSON
import datetime,time
from config import *
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
class WechatPush():
  def __init__(self,appid,secrect,file_name):
    # 传入appid
    self.appid = appid
    # 传入密码
    self.secrect = secrect
    # 传入记录token和过期时间的文件名
    self.file_name=file_name
  def build_timestamp(self,interval):
    # 传入时间间隔,得到指定interval后的时间 格式为"2015-07-01 14:41:40"
    now = datetime.datetime.now()
    delta = datetime.timedelta(seconds=interval)
    now_interval=now + delta
    return now_interval.strftime(‘%Y-%m-%d %H:%M:%S‘)
  def check_token_expires(self):
    # 判断token是否过期
    with open(self.file_name,‘r‘) as f:
      line=f.read()
      if len(line)>0:
        expires_time=line.split(",")[1]
        token=line.split(",")[0]
      else:
        return "","true"
    curr_time=time.strftime(‘%Y-%m-%d %H:%M:%S‘)
    # 如果过期返回false
    if curr_time>expires_time:
      return token,"false"
    # 没过期返回true
    else:
      return token,"true"
  def getToken(self):
    # 获取accessToken
    url = ‘https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=‘+self.appid + "&secret="+self.secrect
    try:
      f = urllib2.urlopen(url)
      s = f.read()
      # 读取json数据
      j = json.loads(s)
      j.keys()
      # 从json中获取token
      token = j[‘access_token‘]
      # 从json中获取过期时长
      expires_in =j[‘expires_in‘]
      # 将得到的过期时长减去300秒然后与当前时间做相加计算然后写入到过期文件
      write_expires=self.build_timestamp(int(expires_in-300))
      content="%s,%s" % (token,write_expires)
      with open(self.file_name,‘w‘) as f:
        f.write(content)
    except Exception,e:
      print e
    return token
  def post_data(self,url,para_dct):
    """触发post请求微信发送最终的模板消息"""
    para_data = para_dct
    f = urllib2.urlopen(url,para_data)
    content = f.read()
    return content
  def do_push(self,touser,template_id,url,topcolor,data):
    ‘‘‘推送消息 ‘‘‘
    #获取存入到过期文件中的token,同时判断是否过期
    token,if_token_expires=self.check_token_expires()
    #如果过期了就重新获取token
    if if_token_expires=="false":
      token=self.getToken()
    # 背景色设置,貌似不生效  
    if topcolor.strip()==‘‘:
      topcolor = "#7B68EE"
    #最红post的求情数据
    dict_arr = {‘touser‘: touser, ‘template_id‘:template_id, ‘url‘:url, ‘topcolor‘:topcolor,‘data‘:data}
    json_template = json.dumps(dict_arr)
    requst_url = "Https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+token
    content = self.post_data(requst_url,json_template)
    #读取json数据
    j = json.loads(content)
    j.keys()
    errcode = j[‘errcode‘]
    errmsg = j[‘errmsg‘]
    #print errmsg
if __name__ == "__main__":
  def alarm(title,hostname,timestap,level,message,state,tail):
    """报警函数"""
    color="#FF0000"
    data={"first":{"value":title},"keyWord1":{"value":hostname,"color":color},"keyword2":{"value":timestap,"color":color},"keyword3":{"value":level,"color":color},"keyword4":{"value":message,"color":color},"keyword5":{"value":state,"color":color},"remark":{"value":tail}}
    return data
  def recover(title,message,alarm_time,recover_time,continue_time,tail):
    """恢复函数"""
    re_color="#228B22"
    data={"first":{"value":title},"content":{"value":message,"color":re_color},"occurtime":{"value":alarm_time,"color":re_color},"recovertime":{"value":recover_time,"color":re_color},"lasttime":{"value":continue_time,"color":re_color},"remark":{"value":tail}}
    return data
  # data=alarm("测试的报警消息","8.8.8.8",time.ctime(),"最高级别","然并卵","挂了","大傻路赶紧处理")
  # 实例化类
  WEBchart=WechatPush(appid,secrect,file_name)
  url="http://www.xiaoniu88.com"
  print len(sys.argv)
  # 发送报警消息
  if len(sys.argv) == 9:
    title=sys.argv[1]
    hostname=sys.argv[2]
    timestap=sys.argv[3]
    level=sys.argv[4]
    message=sys.argv[5]
    state=sys.argv[6]
    tail=sys.argv[7]
    print "sys.argv[1]"+sys.argv[1]
    print "sys.argv[2]"+sys.argv[2]
    print "sys.argv[3]"+sys.argv[3]
    print "sys.argv[4]"+sys.argv[4]
    print "sys.argv[5]"+sys.argv[5]
    print "sys.argv[6]"+sys.argv[6]
    print "sys.argv[7]"+sys.argv[7]
    print "sys.argv[8]"+sys.argv[8]
    with open("/etc/zabbix/moniter_scripts/test.log",‘a+‘) as f:
      f.write(title+"n")
      f.write(hostname+"n")
      f.write(timestap+"n")
      f.write(level+"n")
      f.write(message+"n")
      f.write(state+"n")
      f.write(tail+"n")
      f.write("%s_%s" % ("group",sys.argv[8])+"n")
    data=alarm(title,hostname,timestap,level,message,state,tail)
    group_name="%s_%s" % ("group",sys.argv[8])
    for touser in eval("%s_%s" % ("group",sys.argv[8])):
      webchart.do_push(touser,alarm_id,url,"",data)
    for touser in group_super:
      webchart.do_push(touser,alarm_id,url,"",data)
  #发送恢复消息
  elif len(sys.argv) == 8:
    title=sys.argv[1]
    message=sys.argv[2]
    alarm_time=sys.argv[3]
    recover_time=sys.argv[4]
    continue_time=sys.argv[5]
    tail=sys.argv[6]
    print "sys.argv[1]"+sys.argv[1]
    print "sys.argv[2]"+sys.argv[2]
    print "sys.argv[3]"+sys.argv[3]
    print "sys.argv[4]"+sys.argv[4]
    print "sys.argv[5]"+sys.argv[5]
    print "sys.argv[6]"+sys.argv[6]
    print "sys.argv[7]"+sys.argv[7]
    data=recover(title,message,alarm_time,recover_time,continue_time,tail)
    for touser in eval("%s_%s" % ("group",sys.argv[7])):
      webchart.do_push(touser,recover_id,url,"",data)
    for touser in group_super:
      webchart.do_push(touser,recover_id,url,"",data)

好了,代码到此结束了,希望以上所述关于Python模板消息的相关叙述能够给大家带来帮助。哪里写的不好,还请各位大侠多多见谅,提出宝贵意见,谢谢。

--结束END--

本文标题: 基于python实现微信模板消息

本文链接: https://lsjlt.com/news/15575.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于python实现微信模板消息
    我的风格,废话不多说了,直接给大家贴代码了,并在一些难点上给大家附了注释,具体代码如下所示: #!/usr/bin/env python #-*- coding:utf-8 -*- import url...
    99+
    2022-06-04
    模板 消息 python
  • python基于itchat实现微信群消息同步机器人
    最近 全栈数据工程师养成攻略 的微信群已经将近500人,开了二群之后为了打通不同微信群之间的消息,花了点时间做了个消息同步机器人,在任意群收到消息时同步到其他群,并且将聊天内容上传至数据库,以供进一步分析、...
    99+
    2022-06-04
    机器人 消息 python
  • 微信公众号发送模板消息
    一、登录微信公众号后台,开通模板消息功能,选择使用的模板消息或者申请新的模板消息,只有通过企业认证才能使用模板消息 模板消息申请下来后,保存模板消息Id,后续发送模板消息使用      二、接口权限 => 网页服务 => 网页授权 =...
    99+
    2023-09-05
    微信 服务器 运维 微信公众平台
  • 微信小程序API模板消息这么使用
    这篇文章主要讲解了“微信小程序API模板消息这么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序API模板消息这么使用”吧!使用说明步骤一:获取模板ID有两个方法可以获取模版ID...
    99+
    2023-06-26
  • 小程序发送订阅消息,微信公众号发送消息模板
    首先讲两个注意事项 小程序和微信公众号的用户openid是不同的。 小程序需要用户手动授权订阅消息通知(一次性订阅是订阅一次发一次,长期订阅可以多发)。 关于小程序和公众号AppID和AppSecret的获取可以自行百度一下,挺简单的。 小...
    99+
    2023-08-31
    小程序 php
  • Python实现向好友发送微信消息
    目录前言c语言发微信消息Python调用不用c编写dll如何发消息调用我们写入的机器码第一次优化第二次优化x86/x64 Call Jmp指令区别前言 原理:Windows逆向,通过...
    99+
    2024-04-02
  • Java实现微信公众号发送模版消息
    微信公众号发送模版消息 背景:如下图,当用户发布需求的时候,公众号自定推送消息。例如:微信支付的时候,公众号会推送支付成功消息 前提:发送模版消息,顾名思义,前提就是需要有模版,那...
    99+
    2024-04-02
  • 基于Python实现快递信息提取
    目录前言一、思路二、解决方案三、小小花絮四、总结前言 前几天在Python交流群里边,有个叫【^-^】的粉丝分享了一道Python基础的题目,跟快递信息有关的,题目如下: 现在想要...
    99+
    2024-04-02
  • 微信小程序 | 微信公众平台SpringBoot开发实例 │ 模板消息的应用开发
     在手机微信公众号中输入文本(如“你好”),公众号发送两条模板消息,如下图所示。 1、说明 1●模板消息的基本规则 模板消息用来帮助公众号进行业务通知,是在模板内容中设定参数(参数必须以{ {开头,且以.DATA} }结尾)并在调用时为这...
    99+
    2023-09-20
    微信公众平台 java 开发语言 微信小程序 小程序
  • 基于kafka实现SpringCloudBus消息总线
    目录一、什么是消息总线二、整合消息总线实现配置自动刷新2.1 面向客户端基本架构2.2 面向服务端的架构三、利用kafka实现消息总线3.1 Spring Boot 整合kafka3...
    99+
    2024-04-02
  • 微信小程序模板消息限制实现无限制主动推送的方法
    小编给大家分享一下微信小程序模板消息限制实现无限制主动推送的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!需求背景基于微信的...
    99+
    2024-04-02
  • Java怎么实现微信公众号发送模版消息
    这篇文章主要介绍Java怎么实现微信公众号发送模版消息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!微信公众号发送模版消息 背景:如下图,当用户发布需求的时候,公众号自定推送消息。例如:微信支付的时候,公众号会推送支...
    99+
    2023-06-29
  • 微信小程序|基于小程序实现发送语音消息及转文字
    此文主要在小程序内聊天的基础上实现语音发送及文字转换。 小程序 账号创建及工具准备 页面大体设计 实现录音功...
    99+
    2023-09-11
    小程序 语音识别
  • android 仿微信demo——微信消息界面实现(移动端)
    目录移动端微信消息页实现总结移动端微信消息页实现 在上一篇中主界面实现说过微信四个页面中间都是是fragment的,并且四个fragment的布局都还没实现,所以这一篇主要实现微信...
    99+
    2024-04-02
  • android 仿微信demo——微信消息界面实现(服务端)
    目录服务端微信消息页实现测试总结 上一篇实现了移动端微信消息界面功能,以此为基础继续完善服务端功能 服务端微信消息页实现 微信消息界面的实现,和登录,注册是类似的,无非就是接受客...
    99+
    2024-04-02
  • python-----定制群发微信消息
    如何使用表格中的信息群发微信消息? 如何读取csv? →   使用内置模块csv 如何按对应信息发送到微信?→  使用第三方库wxpy   以下代码素材自取:链接:https://pan.baidu.com/s/1nmzgCr_wwt...
    99+
    2023-01-30
    消息 python
  • 教你利用python实现企业微信发送消息
    目录一、需要的参数二、获取通讯用户/组三、获取企业ID四、获取应用ID/密钥五、脚本代码六、效果一、需要的参数 1、通讯用户:touser 或 通讯组:toparty ...
    99+
    2024-04-02
  • Python实现向好友发送微信消息优化篇
    目录前言第二次优化第三次优化前言 之前说了怎么写机器码到内存,然后调用。现在说说怎么优化。 用Python发送微信消息给好友 第二次优化 再看一遍c语言的代码 void SendTe...
    99+
    2024-04-02
  • 使用python怎么实现企业微信发送消息
    这篇文章给大家介绍使用python怎么实现企业微信发送消息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、需要的参数1、通讯用户:touser 或 通讯组:toparty  &...
    99+
    2023-06-15
  • Python如何实现APP自动化发微信群消息
    本篇内容主要讲解“Python如何实现APP自动化发微信群消息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何实现APP自动化发微信群消息”吧!1. 前言但是对于很多人来说,首先编...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作