专栏首页Rgcpython发送微信及企业微信消息

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': '45'})
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)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • flask项目开发中,遇到http 413错误

    在flask项目中,上传文件时后台报http 413 Request Entity Too Large 请求体太大错误!

    用户1558882
  • macos Item2 添加 Shell Integration (ftp传输)

    macos系统 的item2软件 的 Shell Integration (ftp传输) 功能强大,无需 安装其他ftp软件,也是为了保证 密码安全

    用户1558882
  • 使用line_profiler查看api接口函数每行代码执行时间

    项目情景描述:   在restful架构风格的项目交付测试的过程中,某接口出现 请求超时导致的http 502 Bad Gateway,于是开始排查具体是接口函...

    用户1558882
  • OpenCV中泛洪填充算法解析与应用

    泛洪填充(Flood Fill)很多时候国内的开发者称它为漫水填充,该算法在图形填充与着色应用程序比较常见,属于标配。在图像处理里对二值图像的Hole可以通过泛...

    OpenCV学堂
  • MongoDB-4.0 生产部署建议

    cosmozhu
  • open文件操作

    Wyc
  • Flex 解析显示.net web service的DataTable返回

    <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adob...

    用户3135539
  • Python接口测试之Requests(七)

    OK,开始愉快的学习requests库吧,在python的标准库中,虽然提供了urllib,utllib2,httplib,但是做接口测试,requ...

    无涯WuYa
  • 将Typecho的数据库迁移至阿里云RDS

    昨天看了”使用阿里云搭建网站并实现站库分离“的文章,然后也想给自己的Typecho安排一下学生无罪,但是看到这是全新的数据库搭建教程,而我们是数据库迁移,总体上...

    ZC.TigerRoot
  • SublimeText 粘贴图片保存到本地

    在写 Markdown 时,比较难的是把图片粘贴保存到本地,或上传到服务器。 本文提供一个简单的方式可以把剪贴板的图片粘贴保存本地。

    林德熙

扫码关注云+社区

领取腾讯云代金券