何を実現したいのかを書きましょう
お世話になっております。
こちらの記事を参考にGmailに届いたメールをKintoneに登録されるようにしたかったのですが、うまくいきませんでした。
ご意見や解決方法のご教示をお願いいたします。
添付ファイル付きのGmailメッセージをkintoneに自動的にアップロード
記事内ではタイトルで条件をしているのですが、宛先で条件指定しています。
発生した問題やエラーメッセージを具体的に書きましょう
お聞きしたいのは2点になります。
・記事内の動作確認step2で「sendTokintone」の選択肢が出てこない
・試しにデバックをしたところエラーメッセージが出てくる
構文エラー: SyntaxError: Invalid shorthand property initializer 行: 10 ファイル: コード.gs
実行したコードをコピー&ペーストしましょう
ドメイン名・宛先メール・apiTokenのみ伏字にさせていただいています。
‘use strict’;
const domain = ‘{〇〇〇}.cybozu.com’;
const appId = {app=365};
const apiToken = ‘{〇〇〇}’;
const appName = ‘{Gmail請求書}’;
// 添付ファイルをアップロードする
function uploadAttachment(attachment) {
const blob = attachment.copyBlob();
const formData = {
file: blob
};
const formHeader = {
‘X-Requested-With’: ‘XMLHttpRequest’,
‘X-Cybozu-API-Token’: apiToken
};
const options = {
method: ‘post’,
headers: formHeader,
payload: formData
};
const res = UrlFetchApp.fetch(‘https://’ + domain + ‘/k/v1/file.json’, options);
return JSON.parse(res.getContentText());
}
// 検索条件に合った受信メールを取得する
function getGmailMessage() {
// 指定した宛先で添付ファイル付未読メールのみ取得
const threads = GmailApp.search(‘is:unread to:(〇〇〇@gmail.com) has:attachment’);
const recordObjs = ;
for (let i = 0; i < threads.length; i++) {
const messages = threads[i].getMessages();// Get messages
for (let j = 0; j < messages.length; j++) {
const recordObj = {};
const message = messages[j];
if (message.isUnread()) { // スレッド内の未読メールのみ対象
const attachments = message.getAttachments();
const fileKeysArray = ;
for (let k = 0; k < attachments.length; k++) {
fileKeysArray.push(uploadAttachment(attachments[k]));
}
if (fileKeysArray.length > 0) {
recordObj.Attachment = {value: fileKeysArray};
}
// メールの送信者
recordObj.name = {value: message.getFrom()};
// 送信元メールアドレス
recordObj.email = {value: message.getReplyTo()};
// メールの件名
recordObj.subject = {value: message.getSubject()};
// メールの本文
recordObj.message = {value: message.getPlainBody()};
// 既読にする
message.markRead();
}
recordObjs.push(recordObj);
}
}
return recordObjs;
}
function sendToKintone() {
const apps = {
YOUR_APPLICATION1: {
appid: appId,
name: appName,
token: apiToken
}
};
const manager = new KintoneManager.KintoneManager(domain, apps);
const records = getGmailMessage();
// recordsにメールの情報が取得できた場合にのみkintoneにPOSTする
if (records.length > 0) {
const response = manager.create(‘YOUR_APPLICATION1’, records);
// 成功すればcodeに200が返る
const code = response.getResponseCode();
Logger.log(‘Response code is “%s”’, code);
} else {
Logger.log(‘No record found’);
}
}