通过DriveApp.getFileById从Google云端硬盘到Google幻灯片的图片

时间:2017-09-04 01:25:17

标签: google-apps-script google-drive-api google-slides-api

我想在说明Google Developers - How to...

后,通过Google Apps脚本将图片导入Google幻灯片
function createImage(presentationId) {
// Add a new image to the presentation page. The image is assumed to exist in
// the user's Drive, and have 'imageFileId' as its file ID.
var requests = [];
var pageId = 'g1fe0c....';
var imageId = 'MyImage_01';
var imageUrl = DriveApp.getFileById('0B6cQESmLJfX...').getUrl();

var emu4M = {
  magnitude: 4000000,
  unit: 'EMU'
};
requests.push({
  createImage: {
    objectId: imageId,
    url: imageUrl,
    elementProperties: {
      pageObjectId: pageId,
      size: {
        height: emu4M,
        width: emu4M
      },
      transform: {
        scaleX: 1,
        scaleY: 1,
        translateX: 100000,
        translateY: 100000,
        unit: 'EMU'
      }
    }
  }
});

// Execute the request.
var response = Slides.Presentations.batchUpdate({
  requests: requests
}, presentationId); 

}

但对于我尝试的每种图片格式,Google Apps脚本中都会显示错误消息:

  

无效请求[0] .createImage:提供的图像位于   不支持的格式。

在Google Advanced Services中激活了Drive-和Slides API。该文件夹和文件具有公共共享。

是否有人使用DriveApp.getFileById()命令以及后续成功导出到Google幻灯片?

1 个答案:

答案 0 :(得分:1)

以下修改怎么样?

来自:

var imageUrl = DriveApp.getFileById('0B6cQESmLJfX...').getUrl();

致:

var imageUrl = DriveApp.getFileById('0B6cQESmLJfX...').getDownloadUrl() + "&access_token=" + ScriptApp.getOAuthToken();

从这份文件中,似乎需要访问令牌。 https://developers.google.com/slides/how-tos/add-image