実現したいこと
LINE Messaging APIを使ってLINEグループにGmailの内容を送りたい。
前提
GASを使っています。
LINE Notify の終了に伴いそこで動作をしていたコードとAI作成したコードを切り貼りして作成をしております。
発生している問題・エラーメッセージ
Exception: Request failed for https://api.line.me returned code 400. Truncated server response: {"message":"The request body has 2 error(s)","details":[{"message":"May not be empty","property":"messages"},{"message":"May not be empty","propert... (use muteHttpExceptions option to examine full response)
該当のソースコード
JAVA
//条件
const query = 'from:mail_address';
// LINE Messaging APIのメッセージ上限
const MAX_MESSAGE_LENGTH = 980;
const Access_Token = "Access_Token";
//Gmailから取得
function getMail() {
// スレッド検索 (最大10件)
const threads = GmailApp.search(query, 0, 10);
const messages = GmailApp.getMessagesForThreads(threads);
for (const messageThread of messages) {
for (const message of messageThread) {
if (!message.isStarred()) {
const messageDate = message.getDate();
const formattedDate = Utilities.formatDate(messageDate, 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss');
const subject = message.getSubject();
const body = message.getPlainBody();
let messageContent = `${formattedDate}\n${subject}\n${body}`; // メッセージを分割して送信 (LINE Messaging APIの上限文字数に合わせる) for (let i = 0; i < messageContent.length; i += MAX_MESSAGE_LENGTH) { const chunk = messageContent.substring(i, i + MAX_MESSAGE_LENGTH); sendLineMessage(chunk); } // 処理済みメッセージはスターを付ける message.star(); } }
}
}
//LINEに送信
function sendLineMessage(message) {
const url = "https://api.line.me/v2/bot/message/push";
const payload = {
message: {
type: "text",
text: message,
},
};
//LINE グループのreplayToken
const replayToken = "replayToken";
const options = {
"method": "post",
"headers": {
"Authorization": "Bearer " + Access_Token,
"Content-Type": "application/json; charset = UTF-8",
},
"payload": JSON.stringify(payload),
};
UrlFetchApp.fetch(url, options);
}
試したこと
AI生成の物と、有志で作成したものを切り貼りしており何を試せばいいかわからない状態です、、
ぐちゃぐちゃで見づらいかもしれませんが、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/01/06 04:52