前提・実現したいこと
GASで
Googleフォーム→スプレッドシート→PDF化→メールに送信を作成したのですが、
スプレッドシートに入力までは動き、その後のGoogleフォルダにPDF化した資料が反映されず、メールに飛ばせません。
エラーも起きてないのですがどこかコードで間違っていますでしょうか?
お力をお貸しください。
発生している問題・エラーメッセージ
エラーメッセージ ```なし ### 該当のソースコード ```ここに言語名を入力 ソースコード
// FormApp.getActiveForm()
function myFunction(event) {
//今日の日付
var request_date = new Date();
// フォーム
var res = event.response.getItemResponses();
var name_kanji;
var name_furi;
var postal_code;
for (var n in res) {
var item = res[n];
var name = item.getItem().getTitle();
var value = item.getResponse();
switch (name) { case 'お名前': name_kanji = value; break; case 'シャンプー発注数 例)5個': name_furi = value; break; case '発注希望日': postal_code = value; break; }
}
// スプレッドシートURLから抽出したIDを入力
var ssid = "11ByCFAy5GECZYkOAfSNVxFr_A53gx4fzpeiZUWYcg_8";
var ss = SpreadsheetApp.openById(ssid);
var pdfss = ss.getSheetByName("テスト用");
var sheetid = ss.getActiveSheet().getSheetId();
pdfss.getRange("F11").setValue(name_kanji); //お名前
pdfss.getRange("F12").setValue(name_furi); //シャンプー発注数 例)5個
pdfss.getRange("F13").setValue(postal_code); //発注希望日
SpreadsheetApp.flush();
// 以下PDF化のためのプログラムです。今回はA4サイズでPDF化するため、オプション設定も下記のようになります。
var url = "https://docs.google.com/spreadsheets/d/SSID/export?".replace("SSID", ssid);
var url_ext = [];
var opts = {
format: "pdf",
size: "A4",
fzr: "false",
portrait: "true",
gridlines: "false",
printtitle: "false",
pagenumbers: "false",
fitw: "true",
sheetnames: "false",
gid: sheetid
};
// 上記のoptsのオプション名と値を「=」で繋げて配列url_extに格納
for (optName in opts) {
url_ext.push(optName + "=" + opts[optName]);
}
// url_extの各要素を「&」で繋げる
var options = url_ext.join("&");
Logger.log(options)
try {
// API使用のためのOAuth認証
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + options, { headers: { "Authorization": "Bearer " + token } }); // ファイル名を作成「活動日時開始日_名前.pdf」 var fileName = start_date + "_" + name_kanji + ".pdf"; // Googleドライブでフォルダを作成してURLからIDを入力 var folder = DriveApp.getFolderById("1ogXcyhA3WLhTDH9y6OsETmVcuxHSysvK"); var fileBlob = response.getBlob().setName(fileName); folder.createFile(fileBlob); // メールアドレス(社協の受付アドレス) MailApp.sendEmail("メアド", "テスト用個人シャンプー", "テスト用個人シャンプーです。よろしくお願いします。", { attachments : [fileBlob] });
} catch (e) {
Logger.log("ファイル生成に失敗しました" + e)
}
}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー