使用Python实现给企业微信发送消息功能

作者:Jason_WangYing 时间:2021-06-10 15:30:07 

一、概述

本文将介绍如何使用python3给企业微信发送消息。我的环境是linux + python3.6.10。

二、python脚本


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/8/20 上午12:42
# @Author  : wangying
# @Site    :
# @File    : 企业微信.py
# @Software: PyCharm

#!/root/.virtualenvs/wechat/bin/python
# usage: send message via wechat

import requests, sys, json
import urllib3
urllib3.disable_warnings()

###填写参数###

# Corpid是企业号的标识
Corpid = "ww32a580fceb30f350"

# Secret是管理组凭证密钥
Secret = "QyBTbg1QL9lmNwaErqv1DMV0Y_G3lZre268E0hpTDqk"

# 应用ID
Agentid = "1000004"

# token_config文件放置路径
Token_config = r'/tmp/zabbix_wechat_config.json'

###下面的代码都不需要动###

def GetTokenFromServer(Corpid, Secret):
   """获取access_token"""
   Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
   Data = {
       "corpid": Corpid,
       "corpsecret": Secret
   }
   r = requests.get(url=Url, params=Data, verify=False)
   print(r.json())
   if r.json()['errcode'] != 0:
       return False
   else:
       Token = r.json()['access_token']
       file = open(Token_config, 'w')
       file.write(r.text)
       file.close()
       return Token

def SendMessage(Partyid, Subject, Content):
   """发送消息"""
   # 获取token信息
   try:
       file = open(Token_config, 'r')
       Token = json.load(file)['access_token']
       file.close()
   except:
       Token = GetTokenFromServer(Corpid, Secret)

# 发送消息
   Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
   Data = {
       "toparty": Partyid,
       "msgtype": "text",
       "agentid": Agentid,
       "text": {"content": Subject + '\n' + Content},
       "safe": "0"
   }
   r = requests.post(url=Url, data=json.dumps(Data), verify=False)

# 如果发送失败,将重试三次
   n = 1
   while r.json()['errcode'] != 0 and n < 4:
       n = n + 1
       Token = GetTokenFromServer(Corpid, Secret)
       if Token:
           Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
           r = requests.post(url=Url, data=json.dumps(Data), verify=False)
           print(r.json())

return r.json()

if __name__ == '__main__':
   # 部门id
   Partyid = '20'
   # 消息标题
   Subject = '自应用程序代码测试'
   # 消息内容
   Content = 'str(sys.argv[3])'
   Status = SendMessage(Partyid, Subject, Content)
   print(Status)

需要修改的地方,其中Corpid,Secret,Agentid我会在后面的截图指出来要填的值。

下行是linux环境下python3的可执行路径,如果是windows,那么这行就不需要,只要将python的路径加入到path即可

#!/root/.virtualenvs/wechat/bin/python

# Corpid是企业ID

Corpid = "ww34d7fed41a8d5dxx"

# Secret是管理组凭证密钥

Secret = "8QwzOi0xCvbp1ZnCbnQJ1d6uEIv-Lrbcjp93UrHFxxx"

# Agentid是应用ID

Agentid = "1000002"

# Token_config里面存放token信息,这个自己随便填就行,只要自己有写的权限

Token_config = r'/tmp/zabbix_wechat_config.json'

三、企业微信设置

1. 注册企业微信

https://qy.weixin.qq.com/

使用Python实现给企业微信发送消息功能

2. 点击进入管理后台

创建应用

使用Python实现给企业微信发送消息功能

使用Python实现给企业微信发送消息功能

3. 创建应用完成后

Agentid,Secret就出来了

使用Python实现给企业微信发送消息功能

4. 查看企业id

这个就是脚本中的Corpid

使用Python实现给企业微信发送消息功能

5. 查看部门id

使用Python实现给企业微信发送消息功能

我这个python脚本是通过部门id进行群体发送,所以这个部门id到后面会有用。

四、测试脚本

直接运行:python manage.py runserver

使用Python实现给企业微信发送消息功能

来源:https://blog.csdn.net/Jason_WangYing/article/details/108117072

标签:Python,企业微信,发送消息
0
投稿

猜你喜欢

  • Python Pygame实战之飞机大战的实现

    2023-10-19 17:30:30
  • 如何解决tensorflow恢复模型的特定值时出错

    2023-12-22 14:59:36
  • 详解python的数字类型变量与其方法

    2023-12-05 18:40:53
  • OpenCV中VideoCapture类的使用详解

    2022-10-26 18:38:15
  • Python数据类型详解(二)列表

    2021-10-26 08:47:11
  • 浅谈django不使用restframework自定义接口与使用的区别

    2023-11-24 09:44:02
  • Python实现检测服务器是否可以ping通的2种方法

    2023-06-07 20:18:14
  • 在TensorFlow中屏蔽warning的方式

    2023-05-08 10:54:19
  • Python中使用语句导入模块或包的机制研究

    2023-02-21 15:06:40
  • 再谈float菜单局中

    2009-12-21 19:57:00
  • js常用排序实现代码

    2023-08-30 08:50:24
  • python字符串下标与切片及使用方法

    2022-04-21 13:08:03
  • 从事设计行业的十年

    2008-04-01 09:44:00
  • python编程实现12306的一个小爬虫实例

    2021-09-23 10:58:14
  • CSS实现元素透明的那些事

    2009-09-07 12:22:00
  • Python机器学习入门(五)之Python算法审查

    2021-10-15 09:27:48
  • JS语法检查插件 jsLint for Vim

    2010-11-15 21:31:00
  • 无法远程登入MySQL数据库的几种解决办法

    2012-04-13 11:57:41
  • python 画条形图(柱状图)实例

    2021-12-06 19:09:26
  • Python进度条的制作代码实例

    2022-01-01 23:17:34
  • asp之家 网络编程 m.aspxhome.com