1 parent
4faa3f07ab
commit
27ff70ba57
2 files changed
+297
-84
No files matched your search
+5
-4
@@ -87,7 +87,7 @@ def do_bitable_record_add(data) -> None:
|
|||||||
action for action in action_list if action.get("action") == "record_edited"
|
action for action in action_list if action.get("action") == "record_edited"
|
||||||
]
|
]
|
||||||
|
|
||||||
if not( set(target_actions) <= set(actions_name)):
|
if not (set(target_actions) <= set(actions_name)):
|
||||||
return
|
return
|
||||||
|
|
||||||
if table_id != "tblESHsFZwtiFROB":
|
if table_id != "tblESHsFZwtiFROB":
|
||||||
@@ -103,14 +103,15 @@ def do_bitable_record_add(data) -> None:
|
|||||||
action_data = {}
|
action_data = {}
|
||||||
|
|
||||||
for field in after_value:
|
for field in after_value:
|
||||||
|
tmp = "".join([item["text"] for item in json.loads(field.get("field_value"))])
|
||||||
if field.get("field_id") == "fldIV2G9lv":
|
if field.get("field_id") == "fldIV2G9lv":
|
||||||
action_data["title"] = field.get("field_value")
|
action_data["title"] = tmp
|
||||||
|
|
||||||
if field.get("field_id") == "fldk5ImODy":
|
if field.get("field_id") == "fldk5ImODy":
|
||||||
action_data["background"] = field.get("field_value")
|
action_data["background"] = tmp
|
||||||
|
|
||||||
if field.get("field_id") == "fldfjXnFVa":
|
if field.get("field_id") == "fldfjXnFVa":
|
||||||
action_data["features"] = field.get("field_value")
|
action_data["features"] = tmp
|
||||||
|
|
||||||
print(f"table_id: {table_id}")
|
print(f"table_id: {table_id}")
|
||||||
print(f"record_id: {record_id}")
|
print(f"record_id: {record_id}")
|
||||||
|
|||||||
+292
-80
@@ -4,8 +4,11 @@ import http
|
|||||||
import requests
|
import requests
|
||||||
import lark_oapi as lark
|
import lark_oapi as lark
|
||||||
|
|
||||||
|
import lark_oapi as lark
|
||||||
|
from lark_oapi.api.docx.v1 import *
|
||||||
import lark_oapi as lark
|
import lark_oapi as lark
|
||||||
from lark_oapi.api.contact.v3 import *
|
from lark_oapi.api.contact.v3 import *
|
||||||
|
from lark_oapi.api.wiki.v2 import *
|
||||||
|
|
||||||
|
|
||||||
def search_department(client):
|
def search_department(client):
|
||||||
@@ -69,11 +72,199 @@ def batch_send_message(token):
|
|||||||
print(res)
|
print(res)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
def create_doc(client, space_id, parent_node_token, title):
|
||||||
|
# client = lark.Client.builder() \
|
||||||
|
# .app_id("YOUR_APP_ID") \
|
||||||
|
# .app_secret("YOUR_APP_SECRET") \
|
||||||
|
# .log_level(lark.LogLevel.DEBUG) \
|
||||||
|
# .build()
|
||||||
|
|
||||||
|
# 构造请求对象
|
||||||
|
request: CreateSpaceNodeRequest = (
|
||||||
|
CreateSpaceNodeRequest.builder()
|
||||||
|
.space_id(space_id)
|
||||||
|
.request_body(
|
||||||
|
Node.builder()
|
||||||
|
.obj_type("docx")
|
||||||
|
.parent_node_token(parent_node_token)
|
||||||
|
.node_type("origin")
|
||||||
|
.title(title)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 发起请求
|
||||||
|
option = (
|
||||||
|
lark.RequestOption.builder()
|
||||||
|
.user_access_token("u-drqxH7LHd2AECUzpR7iaIyh42SzMh0Dxgww0lgA024O4")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
response: CreateSpaceNodeResponse = client.wiki.v2.space_node.create(
|
||||||
|
request, option
|
||||||
|
)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.wiki.v2.space_node.create failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
# 处理业务结果
|
||||||
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
|
|
||||||
|
def get_doc_block(client, document_id):
|
||||||
|
# 创建client
|
||||||
|
# 使用 user_access_token 需开启 token 配置, 并在 request_option 中配置 token
|
||||||
|
# 构造请求对象
|
||||||
|
request: ListDocumentBlockRequest = (
|
||||||
|
ListDocumentBlockRequest.builder()
|
||||||
|
.document_id(document_id)
|
||||||
|
.page_size(500)
|
||||||
|
.document_revision_id(-1)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 发起请求
|
||||||
|
option = (
|
||||||
|
lark.RequestOption.builder()
|
||||||
|
.user_access_token("u-drqxH7LHd2AECUzpR7iaIyh42SzMh0Dxgww0lgA024O4")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
response: ListDocumentBlockResponse = client.docx.v1.document_block.list(
|
||||||
|
request, option
|
||||||
|
)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.docx.v1.document_block.list failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
# 处理业务结果
|
||||||
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
|
|
||||||
|
def create_doc_block(
|
||||||
|
client,
|
||||||
|
document_id,
|
||||||
|
block_id,
|
||||||
|
background="",
|
||||||
|
features="",
|
||||||
|
):
|
||||||
|
|
||||||
|
# 构造请求对象
|
||||||
|
request: CreateDocumentBlockChildrenRequest = (
|
||||||
|
CreateDocumentBlockChildrenRequest.builder()
|
||||||
|
.document_id(document_id)
|
||||||
|
.block_id(block_id)
|
||||||
|
.document_revision_id(-1)
|
||||||
|
.request_body(
|
||||||
|
CreateDocumentBlockChildrenRequestBody.builder()
|
||||||
|
.children(
|
||||||
|
[
|
||||||
|
Block.builder()
|
||||||
|
.block_type(4)
|
||||||
|
.heading2(
|
||||||
|
Text.builder()
|
||||||
|
.elements(
|
||||||
|
[
|
||||||
|
TextElement.builder()
|
||||||
|
.text_run(TextRun.builder().content("需求背景").build())
|
||||||
|
.build(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build(),
|
||||||
|
Block.builder()
|
||||||
|
.block_type(2)
|
||||||
|
.text(
|
||||||
|
Text.builder()
|
||||||
|
.style(TextStyle.builder().build())
|
||||||
|
.elements(
|
||||||
|
[
|
||||||
|
TextElement.builder()
|
||||||
|
.text_run(TextRun.builder().content(background).build())
|
||||||
|
.build(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build(),
|
||||||
|
Block.builder()
|
||||||
|
.block_type(4)
|
||||||
|
.heading2(
|
||||||
|
Text.builder()
|
||||||
|
.elements(
|
||||||
|
[
|
||||||
|
TextElement.builder()
|
||||||
|
.text_run(TextRun.builder().content("需求功能").build())
|
||||||
|
.build(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build(),
|
||||||
|
Block.builder()
|
||||||
|
.block_type(2)
|
||||||
|
.text(
|
||||||
|
Text.builder()
|
||||||
|
.style(TextStyle.builder().build())
|
||||||
|
.elements(
|
||||||
|
[
|
||||||
|
TextElement.builder()
|
||||||
|
.text_run(TextRun.builder().content(features).build())
|
||||||
|
.build(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build(),
|
||||||
|
]
|
||||||
|
)
|
||||||
|
.index(0)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 发起请求
|
||||||
|
option = (
|
||||||
|
lark.RequestOption.builder()
|
||||||
|
.user_access_token("u-drqxH7LHd2AECUzpR7iaIyh42SzMh0Dxgww0lgA024O4")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
response: CreateDocumentBlockChildrenResponse = (
|
||||||
|
client.docx.v1.document_block_children.create(request, option)
|
||||||
|
)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.docx.v1.document_block_children.create failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
# 处理业务结果
|
||||||
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
app_id = os.environ["APP_ID"]
|
app_id = os.environ["APP_ID"]
|
||||||
app_secret = os.environ["APP_SECRET"]
|
app_secret = os.environ["APP_SECRET"]
|
||||||
|
|
||||||
|
data = {
|
||||||
|
"title": '[{"type":"text","text":"测试"}]',
|
||||||
|
"background": '[{"type":"text","text":"测试"}]',
|
||||||
|
"features": '[{"type":"text","text":"测试"}]',
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
client = (
|
client = (
|
||||||
lark.Client.builder()
|
lark.Client.builder()
|
||||||
.app_id(app_id)
|
.app_id(app_id)
|
||||||
@@ -81,97 +272,118 @@ if __name__ == "__main__":
|
|||||||
.log_level(lark.LogLevel.DEBUG)
|
.log_level(lark.LogLevel.DEBUG)
|
||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
|
# folder_token = "ADkFwlLhmiLcqAk3QXLcZnHAnHf"
|
||||||
|
title = "测试"
|
||||||
|
space_id = "7268552249415319554"
|
||||||
|
parent_node_token = "ADkFwlLhmiLcqAk3QXLcZnHAnHf"
|
||||||
|
# create_doc(client, space_id, parent_node_token, title)
|
||||||
|
doc_id = "N81ldXDuuoxtXZxUz55coxApnOh"
|
||||||
|
# get_doc_block(client, doc_id)
|
||||||
|
|
||||||
detail_url = (
|
block_id = "N81ldXDuuoxtXZxUz55coxApnOh"
|
||||||
"https://ying-dao.feishu.cn/wiki/EdHQwOhV9iLuh7kZTkwcX6OfnIe?from=from_copylink"
|
|
||||||
)
|
|
||||||
|
|
||||||
create_demand_url = (
|
create_doc_block(client, doc_id, block_id)
|
||||||
"https://ying-dao.feishu.cn/share/base/form/shrcnEI7Hhnhfdh0OXTyQcwGzEb"
|
|
||||||
)
|
|
||||||
|
|
||||||
app_list = [
|
pass
|
||||||
"精选联盟批量邀约: 该在精选联盟设置筛选条件后并对达人批量邀约的功能",
|
|
||||||
"快手达人批量邀约: 在快手设置筛选条件后并对达人批量邀约的功能",
|
# client = (
|
||||||
"视频号达人批量邀约: 在视频后台设置筛选条件并对达人批量邀约的功能",
|
# lark.Client.builder()
|
||||||
]
|
# .app_id(app_id)
|
||||||
|
# .app_secret(app_secret)
|
||||||
|
# .log_level(lark.LogLevel.DEBUG)
|
||||||
|
# .build()
|
||||||
|
# )
|
||||||
|
|
||||||
|
# detail_url = (
|
||||||
|
# "https://ying-dao.feishu.cn/wiki/EdHQwOhV9iLuh7kZTkwcX6OfnIe?from=from_copylink"
|
||||||
|
# )
|
||||||
|
|
||||||
|
# create_demand_url = (
|
||||||
|
# "https://ying-dao.feishu.cn/share/base/form/shrcnEI7Hhnhfdh0OXTyQcwGzEb"
|
||||||
|
# )
|
||||||
|
|
||||||
activity_list = [
|
|
||||||
"批量数据抓取(Java): Java单次表格数据抓取,Java多页连续表格数据抓取",
|
|
||||||
"网页扩展操作: 智能日期选择器,滚动元素至可视区域,隐藏元素,显示元素...",
|
|
||||||
"PostgreSQL 扩展: 执行sql语句,建立连接,添加数据记录,批量添加记录...",
|
|
||||||
"天猫字体解密扩展: 获取天猫价格解密字典, 解密天猫价格内容",
|
|
||||||
]
|
|
||||||
# app_list = [
|
# app_list = [
|
||||||
# "企微群发消息: 在文件传输助手中根据群名单逐条转发信息",
|
# "精选联盟批量邀约: 该在精选联盟设置筛选条件后并对达人批量邀约的功能",
|
||||||
# "TEMU商品复制上架: TEMU商品多店铺一键铺货",
|
# "快手达人批量邀约: 在快手设置筛选条件后并对达人批量邀约的功能",
|
||||||
# "Instagram关键词抓取红人信息: 根据条件抓取红人邮箱以及其他基本信息",
|
# "视频号达人批量邀约: 在视频后台设置筛选条件并对达人批量邀约的功能",
|
||||||
# "TikTok关键词抓取红人信息: 根据条件筛选符合条件的红人,获取红人信息",
|
|
||||||
# "查集装箱实际到港时间-6大航司: 根据船公司和提单号在对应的官网查询到港时间",
|
|
||||||
# ]
|
# ]
|
||||||
|
|
||||||
# activity_list = [
|
# activity_list = [
|
||||||
# "云码验证码扩展: 通用轨迹验证, 通用单图滑块验证, 京东-旋转验证码",
|
# "批量数据抓取(Java): Java单次表格数据抓取,Java多页连续表格数据抓取",
|
||||||
# "Excel 扩展操作: 设置筛选器",
|
# "网页扩展操作: 智能日期选择器,滚动元素至可视区域,隐藏元素,显示元素...",
|
||||||
|
# "PostgreSQL 扩展: 执行sql语句,建立连接,添加数据记录,批量添加记录...",
|
||||||
|
# "天猫字体解密扩展: 获取天猫价格解密字典, 解密天猫价格内容",
|
||||||
# ]
|
# ]
|
||||||
|
# # app_list = [
|
||||||
|
# # "企微群发消息: 在文件传输助手中根据群名单逐条转发信息",
|
||||||
|
# # "TEMU商品复制上架: TEMU商品多店铺一键铺货",
|
||||||
|
# # "Instagram关键词抓取红人信息: 根据条件抓取红人邮箱以及其他基本信息",
|
||||||
|
# # "TikTok关键词抓取红人信息: 根据条件筛选符合条件的红人,获取红人信息",
|
||||||
|
# # "查集装箱实际到港时间-6大航司: 根据船公司和提单号在对应的官网查询到港时间",
|
||||||
|
# # ]
|
||||||
|
|
||||||
app_text = "\n".join(f"🔹{item}" for item in app_list).strip()
|
# # activity_list = [
|
||||||
activity_text = "\n".join(f"🔸{item}" for item in activity_list).strip()
|
# # "云码验证码扩展: 通用轨迹验证, 通用单图滑块验证, 京东-旋转验证码",
|
||||||
|
# # "Excel 扩展操作: 设置筛选器",
|
||||||
|
# # ]
|
||||||
|
|
||||||
# 解决方案实施中心 4gge82cgb18f52af
|
# app_text = "\n".join(f"🔹{item}" for item in app_list).strip()
|
||||||
# 电商事业部 8a612b6c9184b118
|
# activity_text = "\n".join(f"🔸{item}" for item in activity_list).strip()
|
||||||
# 技术支持部 d7g1374b1238d267
|
|
||||||
# 杭州内容组 9fg37g65b1b5b24e
|
|
||||||
# Uerid 7g3756f4
|
|
||||||
# "user_ids": [
|
|
||||||
# "7g3756f4",
|
|
||||||
# ],
|
|
||||||
pyload = {
|
|
||||||
"department_ids": ["4gge82cgb18f52af", "8a612b6c9184b118", "d7g1374b1238d267"],
|
|
||||||
"user_ids": [],
|
|
||||||
"msg_type": "interactive",
|
|
||||||
"card": {
|
|
||||||
"type": "template",
|
|
||||||
"data": {
|
|
||||||
"template_id": "ctp_AAikuuqPwN0o",
|
|
||||||
"template_variable": {
|
|
||||||
"app_text": app_text,
|
|
||||||
"activity_text": activity_text,
|
|
||||||
"detail_url": {
|
|
||||||
"pc_url": "",
|
|
||||||
"android_url": "",
|
|
||||||
"ios_url": "",
|
|
||||||
"url": detail_url,
|
|
||||||
},
|
|
||||||
"create_demand_url": {
|
|
||||||
"pc_url": "",
|
|
||||||
"android_url": "",
|
|
||||||
"ios_url": "",
|
|
||||||
"url": create_demand_url,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
# 构造请求对象
|
# # 解决方案实施中心 4gge82cgb18f52af
|
||||||
request: lark.BaseRequest = (
|
# # 电商事业部 8a612b6c9184b118
|
||||||
lark.BaseRequest.builder()
|
# # 技术支持部 d7g1374b1238d267
|
||||||
.http_method(lark.HttpMethod.POST)
|
# # 杭州内容组 9fg37g65b1b5b24e
|
||||||
.uri("/open-apis/message/v4/batch_send/")
|
# # Uerid 7g3756f4
|
||||||
.token_types({lark.AccessTokenType.TENANT})
|
# # "user_ids": [
|
||||||
.body(pyload)
|
# # "7g3756f4",
|
||||||
.build()
|
# # ],
|
||||||
)
|
# pyload = {
|
||||||
|
# "department_ids": ["4gge82cgb18f52af", "8a612b6c9184b118", "d7g1374b1238d267"],
|
||||||
|
# "user_ids": [],
|
||||||
|
# "msg_type": "interactive",
|
||||||
|
# "card": {
|
||||||
|
# "type": "template",
|
||||||
|
# "data": {
|
||||||
|
# "template_id": "ctp_AAikuuqPwN0o",
|
||||||
|
# "template_variable": {
|
||||||
|
# "app_text": app_text,
|
||||||
|
# "activity_text": activity_text,
|
||||||
|
# "detail_url": {
|
||||||
|
# "pc_url": "",
|
||||||
|
# "android_url": "",
|
||||||
|
# "ios_url": "",
|
||||||
|
# "url": detail_url,
|
||||||
|
# },
|
||||||
|
# "create_demand_url": {
|
||||||
|
# "pc_url": "",
|
||||||
|
# "android_url": "",
|
||||||
|
# "ios_url": "",
|
||||||
|
# "url": create_demand_url,
|
||||||
|
# },
|
||||||
|
# },
|
||||||
|
# },
|
||||||
|
# },
|
||||||
|
# }
|
||||||
|
|
||||||
# 发起请求
|
# # 构造请求对象
|
||||||
response: lark.BaseResponse = client.request(request)
|
# request: lark.BaseRequest = (
|
||||||
|
# lark.BaseRequest.builder()
|
||||||
|
# .http_method(lark.HttpMethod.POST)
|
||||||
|
# .uri("/open-apis/message/v4/batch_send/")
|
||||||
|
# .token_types({lark.AccessTokenType.TENANT})
|
||||||
|
# .body(pyload)
|
||||||
|
# .build()
|
||||||
|
# )
|
||||||
|
|
||||||
# 处理失败返回
|
# # 发起请求
|
||||||
if not response.success():
|
# response: lark.BaseResponse = client.request(request)
|
||||||
lark.logger.error(
|
|
||||||
f"client.request failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 处理业务结果
|
# # 处理失败返回
|
||||||
lark.logger.info(str(response.raw.content, lark.UTF_8))
|
# if not response.success():
|
||||||
|
# lark.logger.error(
|
||||||
|
# f"client.request failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
||||||
|
# )
|
||||||
|
|
||||||
|
# # 处理业务结果
|
||||||
|
# lark.logger.info(str(response.raw.content, lark.UTF_8))
|
||||||
Reference in new issue
Block a user