1 parent
ff3a2f9476
commit
93f9e864dd
2 files changed
+135
-89
No files matched your search
+17
-88
@@ -1,5 +1,8 @@
|
|||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
import time
|
||||||
|
|
||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
import lark_oapi as lark
|
import lark_oapi as lark
|
||||||
@@ -11,7 +14,13 @@ from lark_oapi.api.im.v1 import *
|
|||||||
from lark_oapi.api.bitable.v1 import *
|
from lark_oapi.api.bitable.v1 import *
|
||||||
|
|
||||||
|
|
||||||
from utils import get_message_resource, upload_media
|
from utils import (
|
||||||
|
get_message_resource,
|
||||||
|
upload_media,
|
||||||
|
add_record,
|
||||||
|
update_record,
|
||||||
|
send_group_message,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
@@ -64,7 +73,7 @@ def do_p2_im_message_receive_v1(data: P2ImMessageReceiveV1) -> None:
|
|||||||
record["创建人"] = data.event.sender.sender_id.open_id
|
record["创建人"] = data.event.sender.sender_id.open_id
|
||||||
receive_open_id = data.event.sender.sender_id.open_id
|
receive_open_id = data.event.sender.sender_id.open_id
|
||||||
message_id = data.event.message.message_id
|
message_id = data.event.message.message_id
|
||||||
user_id = data.event.sender.sender_id.user_id
|
# user_id = data.event.sender.sender_id.user_id
|
||||||
|
|
||||||
# 对 image_key 处理并并上传至多维表格
|
# 对 image_key 处理并并上传至多维表格
|
||||||
images_path = []
|
images_path = []
|
||||||
@@ -81,14 +90,18 @@ def do_p2_im_message_receive_v1(data: P2ImMessageReceiveV1) -> None:
|
|||||||
if images:
|
if images:
|
||||||
record["附件"] = [{"file_token": image} for image in images_token]
|
record["附件"] = [{"file_token": image} for image in images_token]
|
||||||
|
|
||||||
add_record(record)
|
record_id = add_record(client, bitable_token, table_id, record)
|
||||||
|
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
update_data = {"创建人": [{"id": receive_open_id}]}
|
||||||
|
update_record(client, bitable_token, table_id, record_id, update_data)
|
||||||
# content = {"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}
|
# content = {"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}
|
||||||
# send_message(receive_id, content)
|
# send_message(receive_id, content)
|
||||||
|
|
||||||
# 回复群组的消息
|
# 回复群组的消息
|
||||||
content = f'{{"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}}'
|
content = f'{{"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}}'
|
||||||
send_group_message(message_id, content)
|
send_group_message(client, message_id, content)
|
||||||
|
|
||||||
|
|
||||||
def do_customized_event(data: lark.CustomizedEvent) -> None:
|
def do_customized_event(data: lark.CustomizedEvent) -> None:
|
||||||
@@ -105,90 +118,6 @@ handler = (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def add_record(data):
|
|
||||||
# 构造请求对象
|
|
||||||
request: CreateAppTableRecordRequest = (
|
|
||||||
CreateAppTableRecordRequest.builder()
|
|
||||||
.app_token(bitable_token)
|
|
||||||
.table_id(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()}"
|
|
||||||
)
|
|
||||||
return
|
|
||||||
|
|
||||||
# 处理业务结果
|
|
||||||
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
|
||||||
|
|
||||||
|
|
||||||
def send_group_message(message_id, content):
|
|
||||||
# 构造请求对象
|
|
||||||
|
|
||||||
request: ReplyMessageRequest = (
|
|
||||||
ReplyMessageRequest.builder()
|
|
||||||
.message_id(message_id)
|
|
||||||
.request_body(
|
|
||||||
ReplyMessageRequestBody.builder()
|
|
||||||
.content(content=content)
|
|
||||||
.msg_type("text")
|
|
||||||
.reply_in_thread(True)
|
|
||||||
.build()
|
|
||||||
)
|
|
||||||
.build()
|
|
||||||
)
|
|
||||||
|
|
||||||
# 发起请求
|
|
||||||
response: ReplyMessageResponse = client.im.v1.message.reply(request)
|
|
||||||
|
|
||||||
# 处理失败返回
|
|
||||||
if not response.success():
|
|
||||||
lark.logger.error(
|
|
||||||
f"client.im.v1.message.reply failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 处理业务结果
|
|
||||||
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
|
||||||
|
|
||||||
|
|
||||||
def send_message(receive_id, content):
|
|
||||||
# 构造请求对象
|
|
||||||
request: CreateMessageRequest = (
|
|
||||||
CreateMessageRequest.builder()
|
|
||||||
.receive_id_type("open_id")
|
|
||||||
.request_body(
|
|
||||||
CreateMessageRequestBody.builder()
|
|
||||||
.receive_id(receive_id)
|
|
||||||
.msg_type("text")
|
|
||||||
.content(content)
|
|
||||||
.build()
|
|
||||||
)
|
|
||||||
.build()
|
|
||||||
)
|
|
||||||
|
|
||||||
# 发起请求
|
|
||||||
response: CreateMessageResponse = client.im.v1.message.create(request)
|
|
||||||
|
|
||||||
# 处理失败返回
|
|
||||||
if not response.success():
|
|
||||||
lark.logger.error(
|
|
||||||
f"client.im.v1.message.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))
|
|
||||||
|
|
||||||
|
|
||||||
@app.route("/event", methods=["POST"])
|
@app.route("/event", methods=["POST"])
|
||||||
def event():
|
def event():
|
||||||
resp = handler.do(parse_req())
|
resp = handler.do(parse_req())
|
||||||
|
|||||||
+118
-1
@@ -13,6 +13,66 @@ import lark_oapi as lark
|
|||||||
from lark_oapi.api.drive.v1 import *
|
from lark_oapi.api.drive.v1 import *
|
||||||
|
|
||||||
|
|
||||||
|
def update_record(client, bitable_token, table_id, record_id, data):
|
||||||
|
# 构造请求对象
|
||||||
|
request: UpdateAppTableRecordRequest = (
|
||||||
|
UpdateAppTableRecordRequest.builder()
|
||||||
|
.app_token(bitable_token)
|
||||||
|
.table_id(table_id)
|
||||||
|
.record_id(record_id)
|
||||||
|
.request_body(AppTableRecord.builder().fields(data).build())
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 发起请求
|
||||||
|
option = (
|
||||||
|
lark.RequestOption.builder()
|
||||||
|
.user_access_token("u-fEsiJAcUZaOFrBI0iYa6N61l4zvBghNxr200l1K82GvD")
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
response: UpdateAppTableRecordResponse = client.bitable.v1.app_table_record.update(
|
||||||
|
request, option
|
||||||
|
)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.bitable.v1.app_table_record.update 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 add_record(client, bitable_token, table_id, data):
|
||||||
|
# 构造请求对象
|
||||||
|
request: CreateAppTableRecordRequest = (
|
||||||
|
CreateAppTableRecordRequest.builder()
|
||||||
|
.app_token(bitable_token)
|
||||||
|
.table_id(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()}"
|
||||||
|
)
|
||||||
|
return
|
||||||
|
|
||||||
|
# 处理业务结果
|
||||||
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
|
return response.data.record.record_id
|
||||||
|
|
||||||
|
|
||||||
def get_message_resource(client, message_id, file_key, file_type, save_dir):
|
def get_message_resource(client, message_id, file_key, file_type, save_dir):
|
||||||
request: GetMessageResourceRequest = (
|
request: GetMessageResourceRequest = (
|
||||||
GetMessageResourceRequest.builder()
|
GetMessageResourceRequest.builder()
|
||||||
@@ -58,7 +118,6 @@ def upload_media(client, file_path, parent_type, parent_node):
|
|||||||
.build()
|
.build()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# 发起请求
|
# 发起请求
|
||||||
option = (
|
option = (
|
||||||
lark.RequestOption.builder()
|
lark.RequestOption.builder()
|
||||||
@@ -80,3 +139,61 @@ def upload_media(client, file_path, parent_type, parent_node):
|
|||||||
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
return response.data.file_token
|
return response.data.file_token
|
||||||
|
|
||||||
|
|
||||||
|
def send_group_message(client, message_id, content):
|
||||||
|
# 构造请求对象
|
||||||
|
|
||||||
|
request: ReplyMessageRequest = (
|
||||||
|
ReplyMessageRequest.builder()
|
||||||
|
.message_id(message_id)
|
||||||
|
.request_body(
|
||||||
|
ReplyMessageRequestBody.builder()
|
||||||
|
.content(content=content)
|
||||||
|
.msg_type("text")
|
||||||
|
.reply_in_thread(True)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 发起请求
|
||||||
|
response: ReplyMessageResponse = client.im.v1.message.reply(request)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.im.v1.message.reply failed, code: {response.code}, msg: {response.msg}, log_id: {response.get_log_id()}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# 处理业务结果
|
||||||
|
lark.logger.info(lark.JSON.marshal(response.data, indent=4))
|
||||||
|
|
||||||
|
|
||||||
|
def send_message(client, receive_id, content):
|
||||||
|
# 构造请求对象
|
||||||
|
request: CreateMessageRequest = (
|
||||||
|
CreateMessageRequest.builder()
|
||||||
|
.receive_id_type("open_id")
|
||||||
|
.request_body(
|
||||||
|
CreateMessageRequestBody.builder()
|
||||||
|
.receive_id(receive_id)
|
||||||
|
.msg_type("text")
|
||||||
|
.content(content)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
|
||||||
|
# 发起请求
|
||||||
|
response: CreateMessageResponse = client.im.v1.message.create(request)
|
||||||
|
|
||||||
|
# 处理失败返回
|
||||||
|
if not response.success():
|
||||||
|
lark.logger.error(
|
||||||
|
f"client.im.v1.message.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))
|
||||||
Reference in new issue
Block a user