Last active
February 7, 2023 13:15
-
-
Save Tomokatsu-Sakamoto/ae45c52f97b202b09a1a9f826f319e9a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
"use strict"; // 変数の宣言を強要する | |
/** | |
* フォームで回答されたときに呼び出されるトリガー関数 | |
* https://developers.google.com/apps-script/guides/triggers/events#google_forms_events | |
*/ | |
function onFormSubmit(e) { | |
const form = FormApp.getActiveForm(); | |
const itemResponses = e.response.getItemResponses(); | |
const eMail = e.response.getRespondentEmail(); // 回答者のメールアドレスを取得 | |
console.log('eMail : ' + eMail); | |
for (let i = 0; i < itemResponses.length; i++) { // 質問の数だけくり返し処理する | |
let itemResponse = itemResponses[i]; | |
Logger.log('Response to the question "%s" (%s) was "%s"', | |
itemResponse.getItem().getTitle(), | |
itemResponse.getItem().getType(), | |
itemResponse.getResponse()); | |
// どの回答が「ファイルアップロード」なのかがわからないので、一つずつ確認する | |
if (itemResponse.getItem().getType() == 'FILE_UPLOAD') { | |
// 回答の種類が「ファイルアップロード」 'FILE_UPLOAD' であれば処理する | |
const fileID = itemResponse.getResponse(); // 回答に格納されているのが、アップロードされた画像ファイルの ID | |
const image = Drive.Files.copy( // 画像ファイルを OCR 機能でテキスト化 | |
{ title: "tmp" }, | |
fileID, | |
{ "ocr": true, "ocrLanguage": "ja" } | |
); | |
const document = DocumentApp.openById(image.id); | |
document.setName(e.response.getTimestamp()); // ファイル名を日付にしておく | |
const text = document.getBody().getText(); | |
console.log(text); | |
Drive.Files.remove(image.id); // 作業ファイルを削除 | |
// テキスト化した内容をメールで返送する | |
const Draft = GmailApp.createDraft( | |
eMail, | |
'アップロードされた画像ファイルに含まれているテキストは…', | |
`-----\n${text}\n-----\nResponded via Google Forms ${e.response.getTimestamp()}`, | |
{ name: 'Automatic Emailer Script', bcc: Session.getActiveUser().getUserLoginId() }); | |
Draft.send(); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment