質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

768閲覧

GoogleカレンダーをLINEに通知する方法

kgkg

総合スコア7

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2021/01/28 01:03

編集2021/01/28 10:21

初心者です。
GoogleカレンダーからLINEに通知するものをつくっています。
時間設定などはしてあり毎朝7時に送られてきます。

解決したいことは2点あり、
➀送信する日付をその都度更新するようにしたいです。
1月27日に作成したのですが、
1月28日になっても、1月27日の予定しか送られてきません。

➁送信されてくる文章の最後に空白の1行が必ず入ってしまうので消したいです。

よろしくお願いいたします。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

コード

var LINE_NOTIFY_TOKEN = "$$$$$$$$$$$$$$$";
var LINE_NOTIFY_API = "https://notify-api.line.me/api/notify";

function calendarToLine() {
var calendars = CalendarApp.getAllCalendars();
var text = "\n" + Utilities.formatDate(new Date(), 'JST', 'MM/dd') + "\n" ;

for(i in calendars) {
var calendar = calendars[i];
var events = calendar.getEventsForDay(new Date());
/*
//カレンダー名を取得する
if( events.length > 0 ) {
text += "■ " + calendar.getName() + "\n";
}
*/

//カレンダーの内容を取得する for(j in events) { var event = events[j]; var title = event.getTitle(); var start = toTime(event.getStartTime()); var end = toTime(event.getEndTime()); text += start + ' - ' + end + " " + title + '\n'; } if( events.length > 0 ) { text += ""; }

}

sendToLine(text);//LINEにデータを送信する
}

//LINEにデータを送信する
//text:送信するデータ
function sendToLine(text){
var token = LINE_NOTIFY_TOKEN;
var options =
{
"method" : "post",
"payload" : "message=" + text,
"headers" : {"Authorization" : "Bearer "+ token}

};
UrlFetchApp.fetch(LINE_NOTIFY_API, options);
}

//'HH:mm'に変換する
function toTime(str){
return Utilities.formatDate(str, 'JST', 'HH:mm');
}

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

質問文にコード掲載するときは、 <code>ってボタンを使いましょう。そうしないと見づらいです。

引用テキスト➀送信する日付をその都度更新するようにしたいです。

スクリプトエディタのタイムゾーン設定が影響してると思います。(最近同じような質問多い)
以下を参考に修正してみてください。
https://teratail.com/questions/317049#reply-442105

引用テキスト➁送信されてくる文章の最後に空白の1行が必ず入ってしまうので消したいです。

最後に改行が入ってると思われるので、forループを抜けた後に一番最後の改行を消しちゃいましょう。

text = text.replace(/\n$/,""); //↑LINEにtext入れる前に上記を追加 sendToLine(text);//LINEにデータを送信する

投稿2021/01/28 03:59

sawa

総合スコア3002

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kgkg

2021/01/28 10:23 編集

ありがとうございます!!! 2つとも一瞬で解決しました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問