@builder6/sharepoint
v3.2.12
Published
Builder6 SharePoint 模块为 Builder6 平台提供文档处理和 Microsoft 365 集成能力,支持 Word 文档与 XML 互转、AI 文档审阅以及 SharePoint Online/OneDrive 集成。
Keywords
Readme
Builder6 SharePoint Module
Builder6 SharePoint 模块为 Builder6 平台提供文档处理和 Microsoft 365 集成能力,支持 Word 文档与 XML 互转、AI 文档审阅以及 SharePoint Online/OneDrive 集成。
功能特性
SharePoint 服务
- Word ↔ XML 转换: 将 Word 文档转换为 XML 格式,支持双向转换
- AI 文档审阅: 在 XML 文档中插入 AI 生成的审阅意见
- 评论管理: 支持在指定行范围添加嵌入式评论
- 临时文件管理: 自动管理文档转换过程中的临时文件
- 文件存储集成: 与 Builder6 文件存储系统无缝集成
Microsoft 365 集成
- OAuth 2.0 认证: 使用客户端凭据流进行 Microsoft Graph API 认证
- SharePoint 站点管理: 列出和访问 SharePoint 站点
- 驱动器和文档访问: 访问 OneDrive 和 SharePoint 文档库
- 文件下载/上传: 从 SharePoint 下载文件或上传文件到 Microsoft 365
- 租户配置: 支持多租户 Microsoft 365 配置
安装
npm install @builder6/sharepoint或
yarn add @builder6/sharepoint环境变量
SharePoint 配置
# Office 文档转换服务 URL
B6_SHAREPOINT_OFFICE_CONVERT_URL=https://your-convert-service.comMicrosoft 365 配置
# Microsoft 365 租户 ID
B6_MICROSOFT365_TENANT_ID=your-tenant-id
# Microsoft 365 客户端 ID
B6_MICROSOFT365_CLIENT_ID=your-client-id
# Microsoft 365 客户端密钥
B6_MICROSOFT365_CLIENT_SECRET=your-client-secret
# Microsoft 365 站点 URL
B6_MICROSOFT365_SITE_URL=https://yourtenant.sharepoint.com/sites/yoursite主要 API
SharePoint 控制器 (/api/v6/sharepoint)
文档转换和审阅相关的 API:
- POST
/api/v6/sharepoint/word2xml: Word 文档转换为 XML - POST
/api/v6/sharepoint/xml2word: XML 转换为 Word 文档 - POST
/api/v6/sharepoint/xmlWriteComments: 在 XML 中插入审阅意见
Microsoft 365 控制器 (/api/v6/microsoft365)
Microsoft 365 集成 API:
- GET
/api/v6/microsoft365/sites: 列出 SharePoint 站点 - GET
/api/v6/microsoft365/drives: 获取驱动器列表 - GET
/api/v6/microsoft365/files: 列出文档库文件 - GET
/api/v6/microsoft365/download/:fileId: 下载文件 - POST
/api/v6/microsoft365/upload: 上传文件到 Microsoft 365
使用示例
在 NestJS 应用中集成
import { Module } from '@nestjs/common';
import { SharepointModule } from '@builder6/sharepoint';
@Module({
imports: [SharepointModule],
})
export class AppModule {}Word 转 XML
import { SharepointService } from '@builder6/sharepoint';
constructor(private sharepointService: SharepointService) {}
async convertWordToXml(fileId: string) {
const xmlFileId = await this.sharepointService.word2Xml(fileId);
return xmlFileId;
}在 XML 中插入 AI 审阅意见
async addAIComments(xmlFileId: string) {
const comments = [
{
startLine: 10,
endLine: 15,
comment: 'AI 建议:这段内容可以更简洁'
}
];
const updatedFileId = await this.sharepointService.xmlWriteComments(
xmlFileId,
comments
);
return updatedFileId;
}XML 转回 Word
async convertXmlToWord(xmlFileId: string) {
const wordFileId = await this.sharepointService.xml2Word(xmlFileId);
return wordFileId;
}访问 Microsoft 365 文件
# 列出 SharePoint 站点
curl -X GET http://localhost:5100/api/v6/microsoft365/sites \
-H "Authorization: Bearer YOUR_TOKEN"
# 下载文件
curl -X GET http://localhost:5100/api/v6/microsoft365/download/FILE_ID \
-H "Authorization: Bearer YOUR_TOKEN" \
--output document.docx工作流示例
AI 文档审阅完整流程
- Word 转 XML: 将 Word 文档转换为 XML 格式
- AI 分析: AI 系统分析文档内容
- 插入评论: 在 XML 中插入 AI 生成的审阅意见
- XML 转 Word: 将带有评论的 XML 转回 Word 文档
- 分发审阅: 用户可在 Word 中查看所有 AI 评论
async aiDocumentReview(wordFileId: string) {
// 1. Word 转 XML
const xmlFileId = await this.sharepointService.word2Xml(wordFileId);
// 2. AI 分析并生成评论
const aiComments = await this.analyzeDocument(xmlFileId);
// 3. 插入 AI 评论
const commentedXmlId = await this.sharepointService.xmlWriteComments(
xmlFileId,
aiComments
);
// 4. 转回 Word
const reviewedWordId = await this.sharepointService.xml2Word(commentedXmlId);
return reviewedWordId;
}权限控制
所有 API 端点都受 AdminGuard 保护,只有管理员用户才能访问这些接口。
依赖项
主要依赖
form-data: ^4.0.5 - 多部分表单数据处理line-reader: ^0.4.0 - 逐行读取文件nodemailer: ^7.0.11 - 邮件发送(用于通知)
Peer Dependencies
@builder6/core: ^3.0.10 - 核心功能模块@builder6/files: ^3.0.10 - 文件管理模块@builder6/moleculer: ^3.0.10 - 微服务框架@nestjs/common: ^11.0.0 - NestJS 核心@nestjs/core: ^11.0.0 - NestJS 核心@nestjs/swagger: ^11.0.7 - API 文档
开发
构建
npm run build监听模式
npm run build:watch格式化代码
npm run format使用场景
- 文档协作: 支持团队协作和文档审阅工作流
- AI 辅助写作: 集成 AI 进行文档内容分析和建议
- SharePoint 集成: 连接企业 SharePoint 环境进行文档管理
- 文档转换: 在不同格式之间转换文档以支持不同的处理需求
License
MIT