美文网首页
python给微信发消息

python给微信发消息

作者: blair_liu | 来源:发表于2021-03-25 20:24 被阅读0次

老方法

用server酱,但是以前server酱一天可以发1000条信息,但是现在出了个Turbo版就只能一天发5条,老版本2021年4月就要停了
怎么办->转用新方法

新方法

1 注册一个企业微信

首先需要注册一个企业微信
https://work.weixin.qq.com/
点立即注册

注册很简单

2 创建应用

创建应用
应用选项

创建完成后进入应用详情页,可以得到应用ID( Agentid ),应用Secret( Secret )


应用详情页
点「我的企业」,拉到最下边,可以看到企业ID
我的企业

进入「我的企业」 → 「微信插件」,拉到下边扫描二维码,关注以后即可收到推送的消息。


关注微信插件
当然你也可以换个logo

3 python程序

# !/usr/bin/python3
# -*-coding:utf-8-*-
# Author: blair liu
# CreatDate: 2021/3/25 19:17
# Description: 

import os
import json
import time
import requests
"""
python发消息给微信
"""


def send2wechat(AgentId, Secret, CompanyId, message):
    """
    :param AgentId: 应用ID
    :param Secret: 应用Secret
    :param CompanyId: 企业ID
    """
    # 通行密钥
    ACCESS_TOKEN = None
    # 如果本地保存的有通行密钥且时间不超过两小时,就用本地的通行密钥
    if os.path.exists('ACCESS_TOKEN.txt'):
        txt_last_edit_time = os.stat('ACCESS_TOKEN.txt').st_mtime
        now_time = time.time()
        print('ACCESS_TOKEN_time:', int(now_time - txt_last_edit_time))
        if now_time - txt_last_edit_time < 7200:  # 官方说通行密钥2小时刷新
            with open('ACCESS_TOKEN.txt', 'r') as f:
                ACCESS_TOKEN = f.read()
                # print(ACCESS_TOKEN)
    # 如果不存在本地通行密钥,通过企业ID和应用Secret获取
    if not ACCESS_TOKEN:
        r = requests.post(f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CompanyId}&corpsecret={Secret}').json()
        ACCESS_TOKEN = r["access_token"]
        # print(ACCESS_TOKEN)
        # 保存通行密钥到本地ACCESS_TOKEN.txt
        with open('ACCESS_TOKEN.txt', 'w', encoding='utf-8') as f:
            f.write(ACCESS_TOKEN)
    # 要发送的信息格式
    data = {
        "touser": "@all",
        "msgtype": "text",
        "agentid": f"{AgentId}",
        "text": {"content": f"{message}"}
    }
    # 字典转成json,不然会报错
    data = json.dumps(data)
    # 发送消息
    r = requests.post(f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={ACCESS_TOKEN}', data=data)
    # print(r.json())


if __name__ == '__main__':
    # 应用ID
    AgentId_ = '100000x'
    # 应用Secret
    Secret_ = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
    # 企业ID
    CompanyId_ = 'xxxxxxxxxxxxxxxxxx'
    # 发送的消息
    message_ = '你好,wechat!'
    send2wechat(AgentId_, Secret_, CompanyId_, message_)

把企业ID、应用Secret( Secret )、应用ID( Agentid )替换成你自己的
你好,wechat!改成你想发的话就OK了
参考:
一个github
https://github.com/Ysnv1997/flsk_qiye_weixin_api
微信官方文档:
https://work.weixin.qq.com/api/doc/90000/90135/90664
https://work.weixin.qq.com/api/doc/90000/90135/91039
https://work.weixin.qq.com/api/doc/90000/90135/90236
https://work.weixin.qq.com/api/doc/90000/90139/90313

4 温馨提醒

现在有一些第三方做这种,比如

https://woriqq.com/archives/45.html
https://www.88ksk.cn/blog/article/26.html

等等
说实话这些都是他们个人网站,获取了你的企业ID、应用Secret( Secret )、应用ID( Agentid )不知道会不会有泄露的风险,
大家还是注意一下,但应该是不会的
大家按照本教程自行运行不会有风险,觉得好的话就点赞收藏一下。


点赞再走

相关文章

网友评论

      本文标题:python给微信发消息

      本文链接:https://www.haomeiwen.com/subject/tclrhltx.html