117 lines
3.1 KiB
JavaScript
117 lines
3.1 KiB
JavaScript
// 使用 @larksuiteoapi/node-sdk 更新飞书文档
|
|
import * as lark from '/home/ubuntu/.openclaw/extensions/openclaw-lark/node_modules/@larksuiteoapi/node-sdk/lib/index.js';
|
|
|
|
const APP_ID = 'cli_a93eb0f160399cc5';
|
|
const APP_SECRET = 'dRzJKrJ46j2Y1DKneyC33dQUNmsLwHCj';
|
|
const DOC_ID = 'YerQd8GomoDWQ6xA1zTc31xfnwb';
|
|
|
|
// 表格内容 (Markdown 格式)
|
|
const TABLE_CONTENT = `| 日期 | 规格 | 数量 |
|
|
|------|------|------|
|
|
| 24 年 12 月 | 细和润 | 2 |
|
|
| 24 年 12 月 | 金细 | 1 |
|
|
| 24 年 12 月 | 红中支 | 3 |
|
|
| 25 年 | 细和润 | 2 |
|
|
| 25 年 | 双支 | 5 |
|
|
|
|
**总计**: 13`;
|
|
|
|
async function main() {
|
|
try {
|
|
console.log('创建 Lark Client...');
|
|
const client = new lark.Client({
|
|
appId: APP_ID,
|
|
appSecret: APP_SECRET,
|
|
});
|
|
|
|
console.log('正在获取文档内容...');
|
|
// 首先获取文档内容,了解当前结构
|
|
const getContentRes = await client.drive.docx.get({
|
|
params: {},
|
|
data: {
|
|
document_id: DOC_ID,
|
|
},
|
|
});
|
|
|
|
console.log('获取文档内容响应:', JSON.stringify(getContentRes, null, 2));
|
|
|
|
// 检查响应
|
|
if (getContentRes.code !== 0) {
|
|
console.error('获取文档内容失败:', getContentRes.msg);
|
|
return;
|
|
}
|
|
|
|
console.log('✓ 获取文档内容成功');
|
|
|
|
// 现在尝试追加内容
|
|
console.log('正在追加内容...');
|
|
// 使用 docx API 追加内容 - 需要在文档末尾添加块
|
|
// 首先获取文档的块列表
|
|
const listBlocksRes = await client.drive.docx.list_block({
|
|
params: {
|
|
page_size: 100,
|
|
},
|
|
data: {
|
|
document_id: DOC_ID,
|
|
},
|
|
});
|
|
|
|
console.log('获取块列表响应:', JSON.stringify(listBlocksRes, null, 2));
|
|
|
|
if (listBlocksRes.code !== 0) {
|
|
console.error('获取块列表失败:', listBlocksRes.msg);
|
|
return;
|
|
}
|
|
|
|
// 获取最后一个块的 ID
|
|
const blocks = listBlocksRes.data?.items || [];
|
|
if (blocks.length === 0) {
|
|
console.error('文档中没有块');
|
|
return;
|
|
}
|
|
|
|
const lastBlock = blocks[blocks.length - 1];
|
|
console.log('最后一个块:', JSON.stringify(lastBlock, null, 2));
|
|
|
|
// 在最后一个块后添加新块
|
|
console.log('正在添加新块...');
|
|
const createBlockRes = await client.drive.docx.create_block({
|
|
params: {
|
|
document_id: DOC_ID,
|
|
parent_block_id: lastBlock.block_id,
|
|
},
|
|
data: {
|
|
blocks: [
|
|
{
|
|
block_type: 1, // text
|
|
text: {
|
|
elements: [
|
|
{
|
|
text_run: {
|
|
content: '\n' + TABLE_CONTENT,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
});
|
|
|
|
console.log('添加块响应:', JSON.stringify(createBlockRes, null, 2));
|
|
|
|
if (createBlockRes.code !== 0) {
|
|
console.error('添加块失败:', createBlockRes.msg);
|
|
return;
|
|
}
|
|
|
|
console.log('✓ 文档更新成功!');
|
|
} catch (error) {
|
|
console.error('✗ 发生错误:', error.message);
|
|
console.error(error.stack);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main();
|