@builder6/sharepoint

v3.2.12

Published

Builder6 SharePoint 模块为 Builder6 平台提供文档处理和 Microsoft 365 集成能力,支持 Word 文档与 XML 互转、AI 文档审阅以及 SharePoint Online/OneDrive 集成。

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.com

Microsoft 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 文档审阅完整流程

  1. Word 转 XML: 将 Word 文档转换为 XML 格式
  2. AI 分析: AI 系统分析文档内容
  3. 插入评论: 在 XML 中插入 AI 生成的审阅意见
  4. XML 转 Word: 将带有评论的 XML 转回 Word 文档
  5. 分发审阅: 用户可在 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