1 parent
0a578f4410
commit
1a46343419
1 file changed
+72
-18
+72
-18
@@ -9,6 +9,22 @@ import hmac
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
import lark_oapi as lark
|
||||||
|
from lark_oapi.api.bitable.v1 import *
|
||||||
|
|
||||||
|
|
||||||
|
# 配置参数
|
||||||
|
CONFIG = {
|
||||||
|
"BASE_URL": "https://boss-api.shadow-rpa.net/boss/api/v1",
|
||||||
|
"TOKEN": "234e69f9-939d-44e0-8b8f-1560ba77e375",
|
||||||
|
"newDutyUuid": "a16edf00-c99f-44ae-bbb9-56d3e3629386",
|
||||||
|
"BITTABLE_APP_ID": "cli_a5110cd1da70900b",
|
||||||
|
"BITTABLE_APP_SECRET": "XwTUlUq7dGK1XexUS7ljShJJ7t1MIwXF",
|
||||||
|
"BITTABLE_APP_TOKEN": "KppebaHOsaHGMxslbLRc82amn5f",
|
||||||
|
"BITTABLE_APP_TABLE_ID": "tblH8KwM2grwj9DI",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def gen_sign(timestamp, secret):
|
def gen_sign(timestamp, secret):
|
||||||
# 拼接timestamp和secret
|
# 拼接timestamp和secret
|
||||||
string_to_sign = "{}\n{}".format(timestamp, secret)
|
string_to_sign = "{}\n{}".format(timestamp, secret)
|
||||||
@@ -22,14 +38,6 @@ def gen_sign(timestamp, secret):
|
|||||||
return sign
|
return sign
|
||||||
|
|
||||||
|
|
||||||
# 配置参数
|
|
||||||
CONFIG = {
|
|
||||||
"BASE_URL": "https://boss-api.shadow-rpa.net/boss/api/v1",
|
|
||||||
"TOKEN": "234e69f9-939d-44e0-8b8f-1560ba77e375",
|
|
||||||
"newDutyUuid": "a16edf00-c99f-44ae-bbb9-56d3e3629386",
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def get_headers(token: Optional[str] = None) -> Dict:
|
def get_headers(token: Optional[str] = None) -> Dict:
|
||||||
"""
|
"""
|
||||||
生成请求头
|
生成请求头
|
||||||
@@ -203,6 +211,41 @@ def feishu_notify(text):
|
|||||||
data = res.read()
|
data = res.read()
|
||||||
|
|
||||||
|
|
||||||
|
def add_bittable_record(data):
|
||||||
|
|
||||||
|
# 创建client
|
||||||
|
client = (
|
||||||
|
lark.Client.builder()
|
||||||
|
.app_id(CONFIG["BITTABLE_APP_ID"])
|
||||||
|
.app_secret(CONFIG["BITTABLE_APP_SECRET"])
|
||||||
|
.log_level(lark.LogLevel.DEBUG)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 构造请求对象
|
||||||
|
request: CreateAppTableRecordRequest = (
|
||||||
|
CreateAppTableRecordRequest.builder()
|
||||||
|
.app_token(CONFIG["BITTABLE_APP_TOKEN"])
|
||||||
|
.table_id(CONFIG["BITTABLE_APP_TABLE_ID"])
|
||||||
|
.request_body(AppTableRecord.builder().fields(data).build())
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
# 发起请求
|
||||||
|
response: CreateAppTableRecordResponse = client.bitable.v1.app_table_record.create(
|
||||||
|
request
|
||||||
|
)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.bitable.v1.app_table_record.create failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}, resp: \n{json.dumps(json.loads(response.raw.content), indent=4, ensure_ascii=False)}"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
# 处理业务结果
|
||||||
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
|
|
||||||
def feishu_notify_to_xbot_content_group(text):
|
def feishu_notify_to_xbot_content_group(text):
|
||||||
|
|
||||||
webhook_url = "/open-apis/bot/v2/hook/b2db78ac-799a-4251-8341-18d49091fa62"
|
webhook_url = "/open-apis/bot/v2/hook/b2db78ac-799a-4251-8341-18d49091fa62"
|
||||||
@@ -259,8 +302,7 @@ def main():
|
|||||||
)
|
)
|
||||||
print(f"{'='*40}\n")
|
print(f"{'='*40}\n")
|
||||||
|
|
||||||
# 通知提交者
|
# 剑心通知
|
||||||
|
|
||||||
messages.append(
|
messages.append(
|
||||||
# f"工单ID: {processed_order['uuid']}\n"
|
# f"工单ID: {processed_order['uuid']}\n"
|
||||||
f"提交者: {processed_order['submitter']}\n"
|
f"提交者: {processed_order['submitter']}\n"
|
||||||
@@ -270,6 +312,7 @@ def main():
|
|||||||
f"邀约: 我是影刀的小伙伴, 想跟你沟通反馈的需求: {processed_order['content']}\n\n"
|
f"邀约: 我是影刀的小伙伴, 想跟你沟通反馈的需求: {processed_order['content']}\n\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 群组通知
|
||||||
message_without_phone.append(
|
message_without_phone.append(
|
||||||
f"工单ID: {processed_order['uuid']}\n"
|
f"工单ID: {processed_order['uuid']}\n"
|
||||||
f"提交者: {processed_order['submitter']}\n"
|
f"提交者: {processed_order['submitter']}\n"
|
||||||
@@ -277,22 +320,33 @@ def main():
|
|||||||
f"企业: {processed_order['enterprise'] or '未找到'}\n"
|
f"企业: {processed_order['enterprise'] or '未找到'}\n"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# 表格同步
|
||||||
|
data = {
|
||||||
|
"企业": processed_order["enterprise"] or "社区版",
|
||||||
|
"手机号": processed_order["phone"],
|
||||||
|
"提交人": processed_order["submitter"],
|
||||||
|
"需求ID": processed_order["uuid"],
|
||||||
|
"需求内容": processed_order["content"],
|
||||||
|
"需求标题": processed_order["title"],
|
||||||
|
}
|
||||||
|
add_bittable_record(data)
|
||||||
|
|
||||||
transfer_work_order(
|
transfer_work_order(
|
||||||
processed_order["uuid"],
|
processed_order["uuid"],
|
||||||
CONFIG.get("newDutyUuid"),
|
CONFIG.get("newDutyUuid"),
|
||||||
)
|
)
|
||||||
# break
|
# break
|
||||||
messages = "\n".join(messages)
|
# messages = "\n".join(messages)
|
||||||
|
|
||||||
if messages.strip():
|
# if messages.strip():
|
||||||
print("发送飞书通知")
|
# print("发送飞书通知")
|
||||||
feishu_notify(text=messages)
|
# feishu_notify(text=messages)
|
||||||
|
|
||||||
message_without_phone = "\n".join(message_without_phone)
|
# message_without_phone = "\n".join(message_without_phone)
|
||||||
|
|
||||||
if message_without_phone.strip():
|
# if message_without_phone.strip():
|
||||||
print("发送飞书通知到内容组")
|
# print("发送飞书通知到内容组")
|
||||||
feishu_notify_to_xbot_content_group(text=message_without_phone)
|
# feishu_notify_to_xbot_content_group(text=message_without_phone)
|
||||||
|
|
||||||
except requests.RequestException as e:
|
except requests.RequestException as e:
|
||||||
print(f"请求发生错误: {e}")
|
print(f"请求发生错误: {e}")
|
||||||
|
|||||||
Reference in new issue
Block a user