本帖最后由 2079898548 于 2020-9-6 10:08 编辑
本想研究一下钉钉那个智慧校园的打卡。
然后弄着弄着就搞了个机器人。
这些代码大部分来自百度。我就是简单的改了一下。嘿嘿
接口部分也都是百度找到的。解密算法也是钉钉那个官网提供的。
所以,这么没任何的技术含量~~~·
那个智慧校园下次再弄,可能别的地方不怎么用吧,智慧校园好像是杭州那边的一个轻松教育的公司弄的。所以·客服要我自己去打电话,然后现在他们也没上班~~~~要等到明天
就算不能弄自动打卡,弄个提醒打卡,也,好像没什么用。。。
上图
我注释的还算可以吧。
这个应该是个人都能看懂~~~~~~~~~
还有那个城市代码~其实你百度一下你在的城市的天气,然后那个网址里应该有个和我那个差不多的~
发代码了,下面问号的地方要填你们自己的~
我就是随便写出来玩玩~~~·
[Python] 纯文本查看 复制代码 # -*- coding: utf-8 -*-
import requests
import json
import time
#下面是解密用到的模块
import hmac
import hashlib
import base64
import urllib.parse
def qianming(): #钉钉开启自定义机器人的安全设置,签名验算
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))
url = '????????????????????????????????????????????' #填你的webhook
webhook = "{}×tamp={}&sign={}".format(url,timestamp,sign)
return webhook #组合解密完的链接
def gou():
req = requests.get('https://v1.alapi.cn/api/dog?format=text')
return req.text #生成舔狗日记
def tianqi():
req = requests.get('http://wthrcdn.etouch.cn/weather_mini?citykey=101210805').text #这个101210805是城市代码
data = json.loads(req)
qihou = data['data']['forecast'][0]['type'] #筛选只要,当天天气,,,,用于舔狗日记的晴。这些
return qihou #生成天气
def dingmessage():
sj = time.strftime('%H:%M:%S',time.localtime(time.time())) #发布时间
day = time.strftime('%m月%d日 %H:%M',time.localtime(time.time())) #舔狗日记的时间
if day[0] == '0': #让月保留一位,更好看吧。
day = day[1:]
qihou = tianqi() #调用天气
tiangou = gou() #调用舔狗
# 请求的URL,WebHook地址
webhook = qianming() #用上面解密完的链接
#构建请求头部
header = {
"Content-Type": "application/json",
"Charset": "UTF-8"
}
message = {
"msgtype": "markdown",
"markdown": {
"title":"营养快线",
"text": "#### {} {} \n> {}\n> ![screenshot](https://api.ixiaowai.cn/api/api.php/{})\n> ###### {}发布 [我愿做一辈子舔狗](https://www.baidu.com/) \n".format(day,qihou,tiangou,time.time(),sj)
}, #后面的那个time.time是放这的,是为了防止图片重复,接口里写了,重复的话可以在后面随机加任意字符,就直接用time了
"at": { #设置要不要@人,我没弄,这个删了也可以。
"atMobiles": [
],
"isAtAll": False
}
}
#对请求的数据进行json封装
message_json = json.dumps(message)
#发送请求
info = requests.post(url=webhook,data=message_json,headers=header)
print(info.text) #打印返回,errmsg是ok就是发送成功。否则是失败,这个我也不知道、
if __name__=="__main__":
while 1:
dingmessage()
time.sleep(1200) #你无聊可以写成软件,然后开机运行,然后每隔20分钟就发送一次。
欢迎白嫖(暗地打死)
|