// 使用 @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();