4

Google Developers - How to...の指示に従って、Google Apps Script を介して 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 Script にエラー メッセージが表示されます。

無効な requests[0].createImage: 指定された画像はサポートされていない形式です。

Drive- and Slides API は、Google Advanced Services で有効化されています。フォルダーとファイルにはパブリック共有があります。

コマンド DriveApp.getFileById() を使用して、その後 Google スライドに正常にエクスポートする人はいますか?

4

1 に答える 1

3

以下の改造はいかがでしょうか?

から :

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

更新日: 2020 年 2 月 7 日

2020年1月より、 のようなクエリパラメータでアクセストークンを使用できなくなりましたaccess_token=###Refということで、リクエストヘッダへのアクセストークンをクエリパラメータの代わりに使用してください。

OPの場合、この答えが使えると思います。

于 2017-09-04T03:13:20.057 に答える