【问题标题】:Google Script openById don't work?谷歌脚本 openById 不起作用?
【发布时间】:2012-10-31 10:52:31
【问题描述】:

这是我写的代码:

function importEventData(){
  var dFile = DocsList.getFileById("0Ar2YhVnsK7LLdGVrUFdpRUVQTHJ0aG1SVkp6V0JMMkE");
  var text = DocumentApp.openById("0Ar2YhVnsK7LLdGVrUFdpRUVQTHJ0aG1SVkp6V0JMMkE").editAsText().getText();
  return text;
};

函数的第一行有效。 但不幸的是,谷歌编译器在第二行停止并说:“文档丢失。(也许它被删除了。)” 现在我尝试了几个小时,在网上搜索,但找不到问题。该脚本有权访问我的 gDrive。 虽然我试图从 dFile.getId() 函数中获取 id。但这会产生相同的字符串和相同的错误。

【问题讨论】:

  • 你的文档其实是一个电子表格,所以只能访问“Docs”的DocumentApp是无权访问的。 (我怎么知道?我尝试在浏览器中通过 URL 打开文档 - 文档 URL 返回“未找到”,但电子表格 URL 启动了“请求许可”对话框。)
  • 是的,看来您应该使用 SpreadsheetApp.openById()。此外,在您处理此问题时,您应该知道 DocsList 服务已于 2014 年 12 月 11 日弃用,并于 2015 年 4 月 20 日关闭。developers.google.com/apps-script/sunset?hl=nl Google Drive 服务取代了它。 developers.google.com/apps-script/reference/drive/drive-app

标签: google-apps-script google-docs


【解决方案1】:
var text = DocumentApp.openById("0Ar2YhVnsK7LLdGVrUFdpRUVQTHJ0aG1SVkp6V0JMMkE").getBody().editAsText().getText();

您需要在.editAsText() 之前添加.getBody(),因为DocumentApp.openByID('id') 返回一个文档类对象,而editastext 方法仅适用于body 对象。这可以在 Google 的文档中看到:https://developers.google.com/apps-script/reference/document/document-app

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 1970-01-01
    相关资源
    最近更新 更多