使用应用程序脚本将Google幻灯片转换为图像时出错

问题描述

这是我用来将Google幻灯片转换为图片代码

function myFunction() {
  var dApp = DriveApp;
  var folder = dApp.getFoldersByName("til");
  
  var til = folder.next();
  var filesIter = til.getFiles();
  var i = 0;
  while(filesIter.hasNext() && i < 50){
    var file = filesIter.next();
    Logger.log(file.getId());
    
    exportSlideImages(file.getId(),file.getName())
    break;
    i = i + 1;
  }
  
}

function exportSlideImages(presentationId,imageName) {
  var presentation = SlidesApp.openById(presentationId);
  var baseUrl =
    "https://slides.googleapis.com/v1/presentations/{presentationId}/pages/{pageObjectId}/thumbnail";
  var parameters = {
    method: "GET",headers: { Authorization: "Bearer " + ScriptApp.getoAuthToken() },contentType: "application/json",muteHttpExceptions: true
  };
  
  presentation.getSlides().forEach(function(slide,i) {
    var url = baseUrl
      .replace("{presentationId}",presentationId)
      .replace("{pageObjectId}",slide.getobjectId());
    
    var response = JSON.parse(UrlFetchApp.fetch(url,parameters));
    Logger.log(response)
    var blob = UrlFetchApp.fetch(response.contentUrl).getBlob();
    blob.setName(imageName +'.png');
    DriveApp.createFile(blob);
   
    
  });
}

它确实创建了一个图像文件,但我在文件中得到了以下输出

代码”:403, “ message”:“ Google幻灯片API之前未在项目396798675804中使用,或者已被禁用。请通过访问启用它 (这里有一个链接) 然后重试。如果您最近启用了此API,请等待几分钟 传播到我们的系统并重试的操作。”,

但是我不明白,我没有ID为396798675804的任何项目。我在做什么错?有指针吗?

解决方法

您必须启用Google Slides Advanced服务,因为您的代码正在使用UrlFetchApp调用Slides API

相关

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...