吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1319|回复: 12
收起左侧

[讨论] 【python】定时钉钉发送知乎爆读里消息,

[复制链接]
固水 发表于 2022-8-15 12:04
本帖最后由 固水 于 2022-10-10 10:59 编辑

最近看了https://www.52pojie.cn/thread-1651017-1-1.html这个帖子,改写了下用钉钉机器人助手推每日消息

目前是设置在钉钉群里,能不能只给自己发,没试过
原理都在钉钉机器人上可以自己看:
1,新建机器人 ,设置秘钥,获取webhook
2,代码部分
[Python] 纯文本查看 复制代码
# # !/usr/local/bin/python3import schedule
import datetime
import requests as req
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests


def get_zhihu():
    """
    :return: 返回每日爆读json数据
    """
    headers = {
        'user-agent':
            'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
    }
    r = req.get('https://news-at.zhihu.com/api/4/news/latest',
                headers=headers)  # 获取知乎API

    return r.json()['stories']


def btns_():
    '''
    :return: 返回get_zhihu处理过的数据用于send_ding的json_data请求参数
    '''
    a = get_zhihu()
    c = []
    for i in a:
        for key in list(i.keys()):
            if key not in ["title", 'url']:
                del i[key]
        i['actionURL'] = i.pop('url')
        c.append(i)
    return c


# 签名计算示例代码
def send_ding():
    '''
    :return: 无返回;请求接口,发送到钉钉群
    '''
    timestamp = str(round(time.time() * 1000))
    secret = ''  # 自己的加签
    secret_enc = secret.encode('utf-8')
    string_to_sign = '{}\n{}'.format(timestamp, secret)
    string_to_sign_enc = string_to_sign.encode('utf-8')
    hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
    sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))

    headers = {
        # Already added when you pass json= but not when you pass data=
        # 'Content-Type': 'application/json',
    }
    params = {
        'access_token': '',  # 自己的webhook里的access_token
        'timestamp': f'{timestamp}',
        'sign': f'{sign}',
    }

    json_data = {
        "msgtype": "actionCard",  # 可去钉钉文档更换其它样式
        "actionCard": {
            # "title": btns_()[0]['actionURL'],
            "text": datetime.datetime.now().strftime('%Y-%m-%d'),  # 今日时间
            "btnOrientation": "0",
            "btns": btns_()
        }
    }

    response = requests.post('https://oapi.dingtalk.com/robot/send', params=params, headers=headers, json=json_data)

def zhixing_work(job):
    '''
    :param job: 准备要执行的函数
    :return: 无返回,定时执行
    '''

    # 引入schedule和time
    # schedule.every(1).minutes.do(job)  # 部署每1分钟执行一次job()函数的任务
    # schedule.every().hour.do(job)            #部署每×小时执行一次job()函数的任务
    # schedule.every().day.at("10:30").do(job) #部署在每天的10:30执行job()函数的任务
    # schedule.every().monday.do(job)          #部署每个星期一执行job()函数的任务
    schedule.every().monday.at("18:00").do(job)  # 部署每周一的18:00执行函数的任务
    schedule.every().tuesday.at("18:00").do(job)  # 部署每周二的18:00执行函数的任务
    schedule.every().wednesday.at("18:00").do(job)  # 部署每周三的18:00执行函数的任务
    schedule.every().thursday.at("18:00").do(job)  # 部署每周四的18:00执行函数的任务
    schedule.every().friday.at("18:00").do(job)  # 部署每周五的18:00执行函数的任务

    while True:
        schedule.run_pending()
        time.sleep(10)
    # 15-17都是检查部署的情况,如果任务准备就绪,就开始执行任务。


if __name__ == '__main__':
    zhixing_work(send_ding)  # 把send_ding函数传给定时任务去定时执行


3,机器人及成品效果:

webhook

webhook

成品图

成品图

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

tencentma 发表于 2022-8-15 14:17
原来这个也能实现,我之前也有这个类似的想法,楼主太牛了,代码儿,我研究一下
zhang120300 发表于 2022-8-15 14:32
学习了。python 不是很懂。

webhook 获取的链接 能给下吗?
lawrenceliu 发表于 2022-8-15 14:34
ycm19980520 发表于 2022-8-15 15:29
+1,感谢楼主
无字情书 发表于 2022-8-15 15:58
我问下 后面这个定时执行任务的 是根据啥执行的。我目前有弄消息推送的钉钉机器人,不过我是做那个任务计划 定时执行的
 楼主| 固水 发表于 2022-8-15 17:28
zhang120300 发表于 2022-8-15 14:32
学习了。python 不是很懂。

webhook 获取的链接 能给下吗?

首先,给个币
其次,我录个gif你看下
 楼主| 固水 发表于 2022-8-15 17:30
无字情书 发表于 2022-8-15 15:58
我问下 后面这个定时执行任务的 是根据啥执行的。我目前有弄消息推送的钉钉机器人,不过我是做那个任务计划 ...

日期,具体我也不太懂,只是看这个模块有定时执行的功能才用的,你可以看下教程关于这个包的
 楼主| 固水 发表于 2022-8-15 17:36
固水 发表于 2022-8-15 17:28
首先,给个币
其次,我录个gif你看下

1,
2,
3,
4,





 楼主| 固水 发表于 2022-8-15 17:38
无字情书 发表于 2022-8-15 15:58
我问下 后面这个定时执行任务的 是根据啥执行的。我目前有弄消息推送的钉钉机器人,不过我是做那个任务计划 ...

你回复了啥,我看不到啊
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 07:24

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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