python3实现公众号每日定时发送日报和图片


Posted in Python onFebruary 24, 2018

本文实例为大家分享了python3实现公众号每日定时发送的具体代码,供大家参考,具体内容如下

步骤是这样:先申请公众号,找到接口文件。看了之后发现主要是通过corpid(企业秘钥)和corpsecret(应用秘钥)获得登录token,通过这个token进入各个url操作。

我这个用的是企业微信,所以有部门。其他公众号也类似。结果如下:

python3实现公众号每日定时发送日报和图片

# -*- coding:utf-8 -*-
import requests
import json
import time

url0 = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'

def get_group_id(): #查看部门与成员
 values_address = {'corpid': '你的corpid',
    'corpsecret': 通讯录corpsecret',
    }
 req = requests.post(url0, params=values_address)
 data = json.loads(req.text)
 token = data["access_token"]
 url_department="https://qyapi.weixin.qq.com/cgi-bin/department/list?access_token="+token #部门
 r_department=requests.get(url_department)
 result_department=r_department.json()
 result_department_no=result_department['department']
 print("***已获取部门信息如下:")
 for item in result_department_no:
  print("[部门]:",item['id']," [部门名称]:",item[ 'name']," [父部门]:",item['parentid']," [序号]:",item['order'])
 print("***已获取成员信息如下:")
 for i in range(len(result_department_no)):
  i=i+1
  url_member = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=%s&department_id=%s&fetch_child=FETCH_CHILD" % (token, i) # 成员
  r_member = requests.get(url_member)
  result_member = r_member.json()
  result_member_no = result_member['userlist']
  for item in result_member_no:
   print("[成员id]:", item['userid'], " [成员名称]:", item['name'], " [所属部门]:", item['department'])
 return result_department_no,result_member_no


def upload_img():
 values_address = {'corpid': '你的corpsecret',
    'corpsecret': '应用corpsecret',
    }
 req = requests.post(url0, params=values_address)
 data = json.loads(req.text)
 token = data["access_token"]
 print("***已获取token.")

 url_upimg="https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s"%(token,"image")
 files = {'filename': ('xn.JPG', open("D:\DOCS\DAY\邮件/DRjpg.JPG", 'rb'))
    } # 显式的设置文件名
 values_upimg={
 "Content - Type": 'multipart/form-data; boundary="----WebKitFormBoundaryn5UouHKhfu8g2XNp";',
 "Content - Length": '331698; boundary="----WebKitFormBoundaryn5UouHKhfu8g2XNp";',
 "Content - Disposition":'form-data; name="image"; boundary=----WebKitFormBoundaryn5UouHKhfu8g2XNp;',
 "content - type": "application/octet-stream; boundary=----WebKitFormBoundaryn5UouHKhfu8g2XNp;"
}
 req_upimg = requests.post(url_upimg,files=files, data=values_upimg)
 data = json.loads(req_upimg.text)
 media_id=data['media_id']
 print("***已获取素材所需id.")
 return token,media_id

def send_msg(token,media_id): #发送图片
 url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="+token
 values = {
 "touser": "@all",
 "toparty" : "2", #***************部门******************
 "msgtype" : "image",
 "agentid" : 1000003,
 "image" : {
  "media_id" : media_id
 },
 "safe":0
}
 data = json.dumps(values)
 req = requests.post(url, data)
 print("返回结果:", req.text)
 return req
 #打印返回信息


while True:
 current_time = time.localtime(time.time())
 if ((current_time.tm_hour == 8) and (current_time.tm_min == 13) and (current_time.tm_sec == 50)):
  (result_department_no, result_member_no) = get_group_id()
  (token, media_id) = upload_img()
  send_msg(token,media_id)
 time.sleep(1)

效果是这样:

python3实现公众号每日定时发送日报和图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python socket网络编程步骤详解(socket套接字使用)
Dec 06 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
Python之用户输入的实例
Jun 22 Python
python中退出多层循环的方法
Nov 27 Python
说说如何遍历Python列表的方法示例
Feb 11 Python
python re库的正则表达式入门学习教程
Mar 08 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
python主要用于哪些方向
Jul 05 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
Aug 27 Python
python 三种方法提取pdf中的图片
Feb 07 Python
pytorch加载预训练模型与自己模型不匹配的解决方案
May 13 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 #Python
使用python和pygame绘制繁花曲线的方法
Feb 24 #Python
python3操作微信itchat实现发送图片
Feb 24 #Python
python自动12306抢票软件实现代码
Feb 24 #Python
浅谈Python中的zip()与*zip()函数详解
Feb 24 #Python
python模仿网页版微信发送消息功能
Feb 24 #Python
python2.7读取文件夹下所有文件名称及内容的方法
Feb 24 #Python
You might like
浅析PHP 按位与或 (^ 、&)
2013/06/21 PHP
浅谈php调用python文件
2019/03/29 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
asp 的 分词实现代码
2007/05/24 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
javascript 计算两个整数的百分比值
2009/12/26 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
javascript学习笔记(五)原型和原型链详解
2014/10/08 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
深入理解JavaScript中的对象
2015/06/04 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
JS数字千分位格式化实现方法总结
2016/12/16 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
快速入门python学习笔记
2017/12/06 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
Windows和Linux动态库应用异同
2016/07/28 面试题
Linux上比较文件的命令都有哪些
2012/02/24 面试题
毕业生物理教师求职信
2013/10/17 职场文书
商务英语专业应届毕业生求职信
2013/10/28 职场文书
烹调加工管理制度
2014/02/04 职场文书
解除劳动合同证明书
2014/09/26 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
给学校的建议书400字
2015/09/14 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
MySQL性能压力基准测试工具sysbench的使用简介
2021/04/21 MySQL
python实现进度条的多种实现
2021/04/29 Python
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题