これは直接的な解決方法ではありませんので恐縮ですが、次のようなアプローチはいかがでしょうか。
例えばPDFなど、画像データ以外を挿入しようとするとサーバー エラーが発生しました。しばらくしてからもう一度試してください。
のようなエラーが発生します。そこで、下記のように少しスクリプトを変更し、エラーが発生するときの情報を取得してみるのはいかがでしょうか。下記スクリプトでは画像貼り付け時にエラーが発生すると、ファイルのmimeType、ファイルサイズ、画像サイズ(もしも画像データ以外の場合はundefined
が返されます)をログとして取得します。mimeTypeが画像データにもかかわらず、エラーが発生するような場合は、貼り付けに対応していない画像形式あるいはサイズである可能性が高いと思われます。ここで得た情報から具体的な解決策を検討するのはいかがでしょうか。
変更したスクリプト
javascript
1var ssid = "スプレッドシートID";
2var ss = SpreadsheetApp.openById(ssid);
3var pdfss = ss.getSheetByName("シート名");
4var folder = DriveApp.getFolderById("画像フォルダのID");
5var files = folder.getFiles();
6var file = files.next();
7var fileBlob = file.getBlob();
8
9// 下記を追加変更しました。
10try {
11 pdfss.insertImage(fileBlob, 1, 1, 0, 0).setWidth(100).setHeight(100);
12} catch(e) {
13 var mimeType = fileBlob.getContentType();
14 var fileSize = fileBlob.getBytes().length;
15 var res = UrlFetchApp.fetch("https://www.googleapis.com/drive/v3/files/" + file.getId() + "?fields=imageMediaMetadata(height%2Cwidth)&access_token=" + ScriptApp.getOAuthToken());
16 var imageMediaMetadata = JSON.parse(res).imageMediaMetadata;
17 Logger.log("\nError: %s\nmimeType: %s\nfileSize: %s\nimageMediaMetadata: %s", e, mimeType, fileSize, imageMediaMetadata)
18}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/11 04:32