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