【问题标题】:Accessing Google Docs from GMail Add-On从 Gmail 插件访问 Google 文档
【发布时间】:2018-06-03 14:39:38
【问题描述】:

我在从 GMail 插件访问 Google 文档时遇到问题。

我想从我的 GMail 插件中复制特定的 Google 文档文件,然后编辑新文档。我可以从我的模板文档创建一个新文档,使用:

  var docTemplate="<DOCUMENT ID>";
  var docName = "Generated Document 123";
  var copyId = DriveApp.getFileById(docTemplate).makeCopy(docName).getId();

但是,当我尝试使用此代码打开文件时:

  var copyDoc = DocumentApp.openById(copyId);

我在 GMail 插件窗格中收到错误提示 “您无权调用 openById [行:36,函数:getContextualAddOn,文件:代码]”

我已经在 Google 表格的 Apps 脚本中成功使用了相同的代码,所以我认为我没有正确设置权限。

在我的清单文件中,我将 oauthScopes 值设置为:

  "oauthScopes": [
    "https://www.googleapis.com/auth/gmail.addons.execute",
    "https://www.googleapis.com/auth/gmail.readonly",
    "https://www.googleapis.com/auth/drive",
    "https://www.googleapis.com/auth/script.external_request"
  ]

/auth/drive 权限允许我调用 DriveApp.getFileById(),但调用 DocumentApp.openById() 需要什么不同的权限?还是有其他问题?

这里的任何指针/指导将不胜感激!

【问题讨论】:

    标签: google-apps-script google-docs gmail-addons


    【解决方案1】:

    添加这个:“https://www.googleapis.com/auth/documents

    如果此答案对您有帮助,请点赞...

    【讨论】:

    • 将“googleapis.com/auth/documents”添加到我的 oauthScopes 解决了它。谢谢! (我的赞成票已记录但未显示。)
    • 是的,这可以让您通过其中的权限部分。之后我遇到了另一个错误,这可能与下面的评论有关。你是怎么做的?
    • 我可以正常访问我的文档(Google 文档)。例如,var doc = DocumentApp.create(myFileName);
    【解决方案2】:

    Using Apps Script services中提到了这个:

    与大多数其他类型的 Apps 脚本不同,自定义函数从不询问 用户授权访问个人数据。因此,他们可以 仅调用无法访问个人数据的服务, 具体如下:

    > 无法打开其他电子表格(SpreadsheetApp.openById() 或 SpreadsheetApp.openByUrl())

    【讨论】:

      猜你喜欢
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2012-12-31
      • 1970-01-01
      相关资源
      最近更新 更多