1 parent
ff3a2f9476
commit
93f9e864dd
2 files changed
+135
-89
No files matched your search
+17
-88
@@ -1,5 +1,8 @@
|
||||
import os
|
||||
import json
|
||||
|
||||
import time
|
||||
|
||||
from itertools import chain
|
||||
|
||||
import lark_oapi as lark
|
||||
@@ -11,7 +14,13 @@ from lark_oapi.api.im.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()
|
||||
@@ -64,7 +73,7 @@ def do_p2_im_message_receive_v1(data: P2ImMessageReceiveV1) -> None:
|
||||
record["创建人"] = data.event.sender.sender_id.open_id
|
||||
receive_open_id = data.event.sender.sender_id.open_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 处理并并上传至多维表格
|
||||
images_path = []
|
||||
@@ -81,14 +90,18 @@ def do_p2_im_message_receive_v1(data: P2ImMessageReceiveV1) -> None:
|
||||
if images:
|
||||
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": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}
|
||||
# send_message(receive_id, content)
|
||||
|
||||
# 回复群组的消息
|
||||
content = f'{{"text": "反馈的问题已经记录到多维表格, 稍后有小伙伴跟进"}}'
|
||||
send_group_message(message_id, content)
|
||||
send_group_message(client, message_id, content)
|
||||
|
||||
|
||||
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"])
|
||||
def event():
|
||||
resp = handler.do(parse_req())
|
||||
|
||||
+118
-1
@@ -13,6 +13,66 @@ import lark_oapi as lark
|
||||
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):
|
||||
request: GetMessageResourceRequest = (
|
||||
GetMessageResourceRequest.builder()
|
||||
@@ -58,7 +118,6 @@ def upload_media(client, file_path, parent_type, parent_node):
|
||||
.build()
|
||||
)
|
||||
|
||||
|
||||
# 发起请求
|
||||
option = (
|
||||
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))
|
||||
|
||||
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