Files
F6--/其它系统脚本/yida_jichengzidonghua.py
2026-01-30 11:28:35 +08:00

171 lines
7.4 KiB
Python

import requests
import json
import time
import datetime
# 生成 token,参数不需要修改
def generateToken() -> str:
""" 生成 token """
token_api = 'https://api.dingtalk.com/v1.0/oauth2/accessToken'
# 该信息在钉钉开放应用中
data = {
"appKey": "ding5kqocon5s9oph5uq",
"appSecret": 'HL1jgsIIfLAC0eTH0A1m4mwxUDqbgsiPeCCGGE3ocM6qJBTIW7Ivt9drxF_Z4Kb_'
}
res = requests.post(token_api, json=data)
token = res.json()['accessToken']
return token
TOKEN = generateToken()
today = time.localtime()
zero_hour = datetime.datetime(today.tm_year, today.tm_mon, today.tm_mday)
min_timestamp = int(time.mktime(zero_hour.timetuple())) * 10**6 + zero_hour.hour * 3600 + zero_hour.minute * 60 + zero_hour.second
max_timestamp = int(time.mktime(today)) * 10**6
min_timestamp = int(str(min_timestamp)[:13])
max_timestamp = int(str(max_timestamp)[:13])
api = f'https://f6car.aliwork.com/alibaba/web/APP_UYZ0KG6L0CCNV80GZ66O/query/appLogicflowBinding/listflow.json?_api=Connector.getListflow&_mock=false&_csrf_token={TOKEN}&_locale_time_zone_offset=28800000&type=1&key=&appType=APP_UYZ0KG6L0CCNV80GZ66O&formUuid=&status=y&pageIndex=1&pageSize=10&_stamp=1687226530479'
headers = {
'cache-control': 'no-cache,no-store,max-age=0,must-revalidate',
'content-encoding':'gzip',
'content-type': 'application/json;charset=UTF-8',
'date': 'Tue, 20 Jun 2023 02:02:55 GMT',
'eagleeye-traceid': '21074b7216872265741857632ee1da',
'expires': '0',
'pragma': 'no-cache',
'realserver': '33.44.128.234:80',
'server': 'Tengine/Aserver',
'strict-transport-security': 'max-age=31536000;includeSubDomains',
'strict-transport-security': 'max-age=0',
'timing-allow-origin': '*',
'ufe-result': 'A6',
'vary': 'Accept-Encoding',
'x-application-context': 'tianshu-vpc:vpc:7001',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '1;mode=block',
'accept': 'application/json, text/json',
'accept-encoding': 'gzip, deflate, br',
'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7',
'bx-v': '2.2.3',
'cookie': 'cna=/rsGGCJMiRICAd3ikLSdYaLe; x-hng=lang=zh-CN; _hjSessionUser_2824842=eyJpZCI6Ijk5N2RlODIwLTllZjQtNTFmMC04ODBlLTM2NjhlNGI5N2IzNCIsImNyZWF0ZWQiOjE2NjE5MzEyNDI5ODUsImV4aXN0aW5nIjp0cnVlfQ==; corp_id=dinga88e3d35525b86ca; account=oauth_k1%3AtviLOwhqkMVXk95JDGDpAUkze7voQ7zLDk8kfKnD7Gx9EM04LgdZaXLgw%2BpZe9qe%2BB5kiQl3l2lMaJ9pGaXqypxzAl2pZeDZHG%2BNNJJ1QKQ%3D; login_type=514E440D8469FCA0F295D0E60E2491CD; tianshu_corp_id=dinga88e3d35525b86ca; corp_industry_info=%7B%22hasIndustryAddressBook%22%3Afalse%2C%22industryType%22%3A%22INDUSTRY_GENERAL%22%7D; yida_user_cookie=340FE517680AA52A8CDA4B096BBA4C25FA4F70F848A9D6250EA4813FB1FB8D9C566FC0D0099E946D10CF82B46D6C9D2141F852DCD3C154D83ADF82D00E06F4B9232A86564625252386D9CC32091DDB3ADC5B29E4C29248111ED255208CF0ECF34EBDBE635E10395BE7A52DF4A835D5385B86D0CBDE4E441D2EB2CFA346709E84F836F4C53A121D24CD09DB1BA76BE4F54A5E200737F4FF8C5CA04C434C882362B175C5DB7668465907C6A60FD5B133827EAACF7A99BD40B4043BED329B24748476993349702AA729C414D14C3F0A8B74636D7E76DBD9B9150A4682A50564D3BE3F71A39407A2B49DE6EF7969F5D6D3947C0D05BE0841E70BCFCEB6D64A4F0BA6FDFF665C4D0B6A6C43C1F8D3D0D7EDAFE7733A8D5BD507FAEDC40BDC572B1C75EE3289B8EAC1B9C78EFBA9CEC317BE9D2970BAFCF0E8CDAAF870A81B8D0288E989F4B2BFA2651BA779F14A863E36749EEAF42903E223A33D2331F62486F14829; tianshu_user_identity=%7B%22inIndustry%22%3Afalse%2C%22innerCorp%22%3Atrue%2C%22userIdentitySet%22%3A%5B%22CORP_INNER%22%5D%7D; tianshu_corp_user=dinga88e3d35525b86ca_2268275546837446; tianshu_csrf_token=3f9f4b09-92f8-4117-8d2b-983c9dc6090a; c_csrf=3f9f4b09-92f8-4117-8d2b-983c9dc6090a; xlly_s=1; tianshu_app_type=APP_UYZ0KG6L0CCNV80GZ66O; due=286F5DFA5EFE869F087F051377C02408EB13E6C58ABB70BBFE5DCE4F6DBCBE73; JSESSIONID=A98E8FBB888B87A840069859FE2006E9; isg=BPn5nBSRuXlKUmBiofhOpN-8CGXTBu24slAp6xsoyCCIohU0Y1CJiLC0JKZUfoXw',
'referer': 'https://f6car.aliwork.com/APP_UYZ0KG6L0CCNV80GZ66O/admin/logicFlow',
'sec-ch-ua': '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': '"Windows"',
'sec-fetch-dest': 'empty',
'sec-fetch-mode': 'cors',
'sec-fetch-site': 'same-origin',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
'x-requested-with': 'XMLHttpRequest'
}
res = requests.get(api, headers=headers)
for a in range(1,int((res.json()['content']['totalCount']/10)) + 2):
api = f'https://f6car.aliwork.com/alibaba/web/APP_UYZ0KG6L0CCNV80GZ66O/query/appLogicflowBinding/listflow.json?_api=Connector.getListflow&_mock=false&_csrf_token={TOKEN}&_locale_time_zone_offset=28800000&type=1&key=&appType=APP_UYZ0KG6L0CCNV80GZ66O&formUuid=&status=y&pageIndex={a}&pageSize=10&_stamp=1687226530479'
res_a = requests.get(api, headers=headers)
for b in range(0,len(res_a.json()['content']['data'])):
for c in range(0,len(res_a.json()['content']['data'][b]['flowList'])):
processCode = res_a.json()['content']['data'][b]['flowList'][c]['processCode']
api = f'https://f6car.aliwork.com/alibaba/web/APP_UYZ0KG6L0CCNV80GZ66O/query/formLogicflowBinding/listLog.json?_api=Connector.listLog&_mock=false&_csrf_token={TOKEN}&_locale_time_zone_offset=28800000&startTime={min_timestamp}&endTime={max_timestamp}&processCode={processCode}&status=2&pageIndex=1&pageSize=10&_stamp=1687232464366'
res_c = requests.get(api, headers=headers)
if res_c.json()['content']['totalCount'] > 0:
name = res_a.json()['content']['data'][b]['flowList'][c]['name']
gmtModified = res_a.json()['content']['data'][b]['flowList'][c]['gmtModified']
formTitle = res_a.json()['content']['data'][b]['formTitle']
print(gmtModified,formTitle,name)
def start_instance_process(token: str, name_all):
"""发送宜搭表单 -- 发起流程表单
Args:
token
data:需要发送的数据字典
"""
yida_api = "https://api.dingtalk.com/v1.0/yida/processes/instances/start"
headers = {
"Content-Type": "application/json",
"x-acs-dingtalk-access-token": token
}
send_data = {
"textField_l9fe0uiw": name_all,
"textField_l9fe0uiv": name_all
}
payload = {
"appType": "APP_TNVBVZ3K8G56HG03Z45Q",
"systemToken": "CH7669818R0WN18TYTYJ42PE6GY22WZN0BYWKD1",
"userId": "yida_pub_account",# 超级管理员账号
"language": "zh_CN",
"formUuid": "FORM-UX866Q61GNLAZBCIEDF77BGVIIR83K82WYPHLH2",
"formDataJson": json.dumps(send_data),
"processCode":"TPROC--UX866Q61GNLAZBCIEDF77BGVIIR83M92WYPHLI2"
}
res = requests.post(yida_api, headers=headers, json=payload)
return res
try:
name_all = f"宜搭集成自动化异常:{gmtModified},{formTitle},{name}"
res_yujing = start_instance_process(TOKEN,name_all)
except:
pass