吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5948|回复: 56
收起左侧

[Python 转载] python企业微信推送《每天60秒读懂世界》

  [复制链接]
YANGLIGHT 发表于 2022-9-15 18:46
本帖最后由 YANGLIGHT 于 2022-9-15 18:47 编辑

之前看到这个 知乎每天60秒读懂世界 一直想着部署一个玩一玩
但是因为是个python初学者 且没空下来所以一直耽搁了
今天闲下心来写了个脚本

图片api来源: https://www.789dl.cn/zb.html
图片api:https://api.03c3.cn/zb
文字api接口:https://www.zhihu.com/api/v4/columns/c_1261258401923026944/items?limit=1

推送效果:
QQ截图20220915184520.png

[Python] 纯文本查看 复制代码
# -*- coding = utf-8 -*-
# 若需要在短时间内大量推送消息,请自行更改代码,把获取的access_token保存起来使用
# access_token有效期目前是7200s,可以通过api返回信息查到有效时间
# 不要频繁调用api获取,会被腾讯拉黑的
import requests


def push_service(corpid, corpsecret, Agentid):
    if corpid == "" or corpsecret == "" or Agentid == "":
        print("必要参数为空")
        return

    # 获取access_token
    url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={corpsecret}"
    r = requests.get(url).json()
    if r["errcode"] != 0:
        print(r["errmsg"])
        print("access_token获取失败!")
        return
    else:
        access_token = r["access_token"]

    # 获取图片media_id
    url = f"https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token={access_token}&type=image"
    img = requests.get('https://api.03c3.cn/zb').content
    files = {'media': img}
    response = requests.post(url=url, files=files).json()
    media_id = response["media_id"]

    # 推送
    url = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token}'
    data = {
        "touser": "@all",
        "msgtype": "image",
        "agentid": Agentid,
        "image": {
            "media_id": media_id
        }
    }
    msg = requests.post(url=url, json=data).json()
    if msg["errcode"] != 0:
        print(f"推送失败!\n{msg}")
    else:
        print('推送成功')


if __name__ == "__main__":
    # 以下参数必填
    corpid = "xxxxxxxxxxx"  # 企业ID
    corpsecret = "xxxxxxxxxxxxxxxxxxxxxxx"  # Secret
    Agentid = "xxxxx"  # 应用ID
    push_service(corpid, corpsecret, Agentid)

免费评分

参与人数 10吾爱币 +16 热心值 +10 收起 理由
hsx778899 + 1 + 1 挂云函数用上了
kover + 1 + 1 运行提示语法错误 SyntaxError: invalid syntax
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wkdxz + 1 + 1 用心讨论,共获提升!
lf1988103 + 1 + 1 我很赞同!
jfaboy + 1 + 1 我很赞同!
OnceAgain + 1 + 1 我很赞同!
sina1207 + 1 + 1 我很赞同!
ICSMY + 1 + 1 我很赞同!
ljili2003 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ncewolf 发表于 2022-9-16 08:27
python 好学吗?
wkdxz 发表于 2022-9-16 11:43
本帖最后由 wkdxz 于 2022-9-16 11:54 编辑

谢谢楼主分享的API,搞了个文字版,有兴趣的朋友拿走吧,需要套用企业微信API
Snipaste_2022-09-16_11-45-04.jpg

[Python] 纯文本查看 复制代码
import datetime
import re
import requests

stoday = datetime.datetime.now().strftime('%Y-%m-%d')


def send_wx(msg):
    corpid = '***'
    corpsecret = '***-**'
    appid = '***'
    url = f'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={corpid}&corpsecret={corpsecret}'
    r = requests.get(url, timeout=5)
    tokens = r.json()['access_token']
    url = f"https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={tokens}"
    data = {
        "touser": "@all",
        "msgtype": "text",
        "agentid": appid,
        "text": {
            "content": msg
        },
        "safe": 0,
    }
    rtxt = requests.post(url, json=data, timeout=9).json()
    return rtxt['errcode'] == 0 and rtxt['errmsg'] == 'ok'


def news_60s():
    response = requests.get(
        'https://www.zhihu.com/api/v4/columns/c_1261258401923026944/items')
    html = response.json()['data'][0]['content']
    cmd = r'data-pid="[^"]*">(\d+、[^;]*);</p>'
    results = re.findall(cmd, html, re.S)
    results.insert(0, f'{stoday} · 60秒新闻')
    return '\n\n'.join(results).replace('"', '"')


if __name__ == '__main__':
    news = news_60s()
    print(news)
    print(send_wx(news))
waddy 发表于 2022-9-15 22:06
vethenc 发表于 2022-9-15 22:06
感谢分享,收藏学习
孤狼微博 发表于 2022-9-15 23:15
你这个接口不好用宇宙工具箱那个
zhangting2022 发表于 2022-9-16 05:42
感谢分享
52soft 发表于 2022-9-16 07:47
牛逼的东东
RoyPenn 发表于 2022-9-16 07:50
学习了,学习使我快乐
luyers 发表于 2022-9-16 08:10
不错 挺好玩 改天也搞一个
abCdeU 发表于 2022-9-16 08:10
新闻也可以自己采集
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 13:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表