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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
详解Python中dict与set的使用
Aug 10 Python
Python 迭代器工具包【推荐】
May 06 Python
Python导入模块时遇到的错误分析
Aug 30 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
python重要函数eval多种用法解析
Jan 14 Python
Python如何实现小程序 无限求和平均
Feb 18 Python
完美解决jupyter由于无法import新包的问题
May 26 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
忆童年!用Python实现愤怒的小鸟游戏
Jun 07 Python
python实现MD5进行文件去重的示例代码
Jul 09 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传输数据的代码
2007/11/13 PHP
一个PHP的远程图片抓取函数分享
2013/09/25 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
javaScript字符串工具类StringUtils详解
2017/12/08 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
js实现搜索栏效果
2018/11/16 Javascript
JS实现简单的点赞与踩功能示例
2018/12/05 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
微信小程序和H5页面间相互跳转代码实例
2019/09/19 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
python调用webservice接口的实现
2019/07/12 Python
pytorch中的自定义数据处理详解
2020/01/06 Python
使用tensorflow显示pb模型的所有网络结点方式
2020/01/23 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python常用类型转换实现代码实例
2020/07/28 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
英语演讲稿范文
2014/01/03 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
初三学生个人自我评定
2014/04/06 职场文书
在职员工证明书
2014/09/19 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
JS Object构造函数之Object.freeze
2021/04/28 Javascript