python发送微信及企业微信消息
1.发送微信消息
直接使用第三方库 itchat,其文档中有详细使用方式;https://itchat.readthedocs.io/zh/latest/
如下实例为 发送群聊信息
# -*- coding: utf-8 -*-
# (C) Guangcai Ren, 2019
# All rights reserved
import logging import itchat log = logging.getLogger(__name__) # itchat 微信官方教程:https://itchat.readthedocs.io/zh/latest/
# 微信登录
# 登录时如果断网,则此程序直接停止
# 启动热登录,并且生成 命令行 登录二维码
itchat.auto_login(hotReload=True, enableCmdQR=2)
# 保持心跳状态,防止自动退出登录
itchat.start_receiving() # 获取群聊,注意群 必须保持到通讯录,否则可能会找不到群
itchat.get_chatrooms(update=True)
room = itchat.search_chatrooms('python')
if len(room) == 0:
log.error('没有找到群信息')
else:
try:
iRoom = room[0]['UserName']
# 发送消息
result = itchat.send('send message', iRoom)
try:
if result['BaseResponse']['ErrMsg'] == '请求成功':
log.info('send wechat success')
except Exception as e:
print('resolve wechat result fail,result is :{},error is {}'.format(result, e))
except Exception as e:
print('wechat send message fail,reason is :{} '.format(e))
2.发送企业微信 信息
企业微信 官方有 相关文档,直接按照文档开发即可。
注意点:
- 先开通企业微信
- 登录网页版 企业微信 https://work.weixin.qq.com/ 从中查找相关 id(在获取访问token时需要)
- 接口一般 流程为 先 获取 token,再用 token访问其他接口
- 发送群聊信息时,群id 只能通过 接口创建群聊的才有群id
- 创建群聊时的 获取token的参数 corpsecret必须 从
应用的 部门一定要选根目录,否则报错 86006;
如果开发过程中有任何问题(错误提示有一定的误导性) 可以通过 企业微信客服 进行沟通解决,他们非常有耐心,谢谢他们。
如下代码 做到了 获取token,创建群聊,发送群聊信息,发送个人信息
# -*- coding: utf-8 -*-
# (C) Guangcai Ren <renguangcai@jiaaocap.com>
# All rights reserved
# create time '2019/6/13 17:17'
import json import requests result = requests.get("https://qyapi.weixin.qq.com/cgi-bin/gettoken",
params={'corpid': 'fg',
'corpsecret': ''})
access_token = None
if result.status_code != 200:
print('连接到服务器失败')
else:
result_json = json.loads(result.text)
if result_json['errcode'] != 0:
print('响应结果不正确')
else:
access_token = result_json['access_token']
print(access_token) # 创建群聊
result = requests.post('https://qyapi.weixin.qq.com/cgi-bin/appchat/create?access_token={}'.format(access_token),
data=json.dumps({
"name": "通知群",
"owner": "user_name",
"userlist": ["user_name", "user_name1", "user_name2"],
"chatid": "secid"
}))
print(result.text) # 推送群聊信息
result = requests.post('https://qyapi.weixin.qq.com/cgi-bin/appchat/send?access_token={}'.format(access_token),
data=json.dumps({
"chatid": "secid",
"msgtype": "text",
"text": {
"content": "测试:你的快递已到\n请携带工卡前往邮件中心领取"
},
"safe": 0
}))
print(result.text) # 发送个人消息
result = requests.post('https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={}'.format(access_token),
data=json.dumps({
"touser": "user_name",
"msgtype": "text",
"agentid": 23,
"text": {
"content": "你的快递已到,请携带工卡前往邮件中心领取。\n出发前可查看<a href=\"http://work.weixin.qq.com\">邮件中心视频实况</a>,聪明避开排队。"
},
"safe": 0
}
))
print(result.text)
python发送微信及企业微信消息的更多相关文章
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 钉钉篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 企业微信篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- CabloyJS一站式助力微信、企业微信、钉钉开发 - 微信篇
前言 现在软件开发不仅要面对前端碎片化,还要面对后端碎片化.针对前端碎片化,CabloyJS提供了pc=mobile+pad的跨端自适应方案,参见:自适应布局:pc = mobile + pad 在这 ...
- Elemetary OS deepin-wine 版 微信 和 企业微信 输入框字体显示异常解决
Elemetary OS deepin-wine 版 微信 和 企业微信 输入框字体显示异常解决 最近体验了Elementary OS 这个系统, 话说我之前都是用的Manjora 的各个桌面版, 突 ...
- 配置zabbix通过微信报警企业微信报警
如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...
- elk使用微信ElartAlert企业微信告警,自定义告警内容
第一种方式 alert: - "elastalert_modules.wechat_qiye_alert.WeChatAlerter" alert_text: " === ...
- 微信、企业微信和支付窗 SDK 三合一,JeeWx-api 1.2.0 版本发布
摘要: JEEWX-API 是第一款JAVA版微信极速SDK,同时集成企业微信SDK,支付窗SDK,可以快速的基于她进行微信公众号.企业微信.支付窗应用开发.基于 jeewx-api 开发可以立即拥有 ...
- Elementary OS常见软件(TIM、微信、企业微信)安装(二)
前言 最终没忍住还是把开发环境迁移到了Elementary OS上来,这其中也没少折腾,试过Ubuntu 20.04 LTS和deepin V20可以(),deepin真的很不错可能是我的电脑兼容性不 ...
- Mint-Linux【最佳】【快速】安装微信、企业微信、TIM、QQ等软件
废话不多说 直接上教程 注意看 方式一.在线安装 在本地目录下.如 /home/root/Document 直接使用在线安装脚本,安装最新的Release版本: wget -qO- https://r ...
随机推荐
- 解压 xxxx.cpio.gz.u-boot
xxxx.cpio.gz.u-boot 为 Ramdisk 文件. 是使用u-boot源码下 tools/mkimage 工具生成的. .u-boot = 64字节的头部信息 + Filesystem ...
- Ubuntu中实现Docker内安装jenkins+jenkins远程触发
前面做了在ubuntu中安装jenkins+docker实现自动部署,但是得安装jdk8+tomcat8环境,比较麻烦,因此本文记录如何将jenkins直接装在dockers内并且实现远程触发功能. ...
- 2019牛客暑期多校训练营(第七场)E F H I
E Find the median 题意:每次往序列中增加连续的[l,r]的数,每加入一次就询问当前序列的中位数. 解法:此题没有要求在线,那么直接离线+线段树+二分就可以了.求出每个端点之后排序得到 ...
- log4j.xml配置详解(转)
转自:http://willow-na.iteye.com/blog/347340 Xml代码 <?xml version="1.0" encoding="UTF- ...
- 【LeetCode】Array
[11] Container With Most Water [Medium] O(n^2)的暴力解法直接TLE. 正确的解法是Two Pointers. O(n)的复杂度.保持两个指针i,j:分别指 ...
- 2.第一个Codefirst实例
1.什么是codefirst EF4.1中开始支持Code First .这种方式在领域设计模式中非常有用.使用Code First模式,你可以专注于领域设计,根据需要,为你一个领域的对象创建类集合, ...
- 使用springBoot完成阿里云短信验证
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...
- windows 下安装python 的requests模块
下载地址:https://codeload.github.com/requests/requests/legacy.zip/master 下载好后解压,进入目录执行下面命令 在cmd下:python ...
- git代码提交步骤
常用的步骤: 1)假如本地想关联git仓库,那么先git init,git remote add origin [git地址] 2)假如是想直接从git仓库拉下来,那么git clone [git地 ...
- cs224d 作业 problem set1 (二) 简单的情感分析
使用在上一篇博客中训练好的wordvector 在这一节进行情感分析. 因为在上一节中得到的是一个词就是一个向量 所以一句话便是一个矩阵,矩阵的每一列表示一个词向量 情感分析的前提是已知一句话是 (超 ...