You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Google Docs中评论的被分配人信息?

获取Google Docs评论被分配人的可行方案

目前Google官方Docs API确实未直接提供获取或设置评论被分配人的接口,但可以通过以下几种变通方式获取或推断相关信息:

1. 结合Drive API与People API获取精准信息

Drive API的comments资源包含assignedTo字段,该字段返回被分配人的用户ID,再通过People API即可解析出姓名和邮箱:

  • 调用Drive API的files.comments.list接口,获取目标文档的评论列表,提取每条评论的assignedTo(用户ID)
  • 将用户ID传入People API的people.get接口,指定personFields=names,emailAddresses参数,即可获取对应账号的姓名和邮箱

注意:此方法需同时授权Drive API和People API,且目标用户需在你的授权访问范围内(如同域企业账号)。

2. 解析网页端DOM元素(非生产环境适用)

在Docs网页端,被分配人信息会渲染在页面HTML中:

  • 打开目标文档网页,查看页面源代码,定位包含assigned-to类名的DOM节点
  • 从节点内容或关联的mailto:链接中提取姓名和邮箱

此方法属于网页抓取,Google服务条款可能限制此类操作,且页面结构易变,仅适合临时需求。

3. Google Apps Script脚本实现

通过Apps Script启用高级服务,结合Drive和People API批量获取:

function fetchCommentAssignees() {
  const doc = DocumentApp.getActiveDocument();
  const docId = doc.getId();
  // 获取文档评论列表(需启用Drive高级服务)
  const comments = Drive.Comments.list(docId);
  
  if (comments.items) {
    comments.items.forEach(comment => {
      if (comment.assignedTo) {
        // 调用People API获取用户信息(需启用People高级服务)
        const userInfo = People.People.get(`people/${comment.assignedTo}`, {personFields: 'names,emailAddresses'});
        const userName = userInfo.names[0].displayName;
        const userEmail = userInfo.emailAddresses[0].value;
        console.log(`评论ID: ${comment.id}, 被分配人: ${userName} <${userEmail}>`);
      }
    });
  }
}

需在Apps Script编辑器中启用Drive API和People API的高级服务,完成授权后即可运行。

4. 间接推断方法

若上述方法无法使用,可通过评论上下文推断:

  • 查看Drive API返回的评论updatedBy字段,若评论被分配后仅被特定用户更新,该用户大概率为被分配人
  • 结合评论回复内容,从回复者的签名或表述中提取姓名(无法直接获取邮箱)

内容的提问来源于stack exchange,提问作者GJ.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 23:55:03