从GMail附加组件访问Google文档

时间:2017-12-21 00:17:09

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

我在使用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 [line:36,function:getContextualAddOn,file:Code]”

我在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()?还是有其他问题吗?

任何指针/指导都将非常感谢!

2 个答案:

答案 0 :(得分:1)

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

如果这个答案对你有所帮助,请提前投票......

答案 1 :(得分:1)

Using Apps Script services中提到了这一点:

  

与大多数其他类型的应用程序脚本不同,自定义功能永远不会问   用户授权访问个人数据。因此,他们可以   仅呼叫无法访问个人数据的服务,   具体如下:

     

<强>&GT;无法打开其他电子表格(SpreadsheetApp.openById()或   SpreadsheetApp.openByUrl())