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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

2回答

1065閲覧

GASスクリプトで指定時間毎で実行して、それ以外は実行しないようにしたい

kryptontt

総合スコア0

Google Apps Script

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2020/10/04 03:53

前提・実現したいこと

slackにpostするgasスクリプトを作成しています。
現状、日付ベースのタイマーかつ時間指定でのトリガー設定しておりますが、
ポストされる時間帯にバラつきがあるため、指定した時刻(9:00や10:00)に配信されるようなイメージにしたいです。

試したことに記載しているURLを参考に、分単位でトライしてみましたが、
指定時刻で削除されず、ポスト配信が続いてしまいます。

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

エラーメッセージはありませんが、minuteTriggerが指定時刻に削除されず、停止できません。

該当のソースコード

function main() { deleteTrigger('minuteTrigger'); var registerDate = new Date(); registerDate.setHours(08); registerDate.setMinutes(00); ScriptApp.newTrigger('minuteTrigger').timeBased().at(registerDate).create(); deleteTrigger('deleteMailTrigger'); var registerDate = new Date(); registerDate.setHours(10); registerDate.setMinutes(00); ScriptApp.newTrigger('deleteMailTrigger').timeBased().at(registerDate).create(); } function deleteTrigger(triggerName) { ScriptApp.getProjectTriggers().forEach(function(trigger) { if (trigger.getHandlerFunction() == triggerName) { ScriptApp.deleteTrigger(trigger); } }); } function minuteTrigger() { deleteTrigger('slackpost'); ScriptApp.newTrigger('slackpost').timeBased().everyMinutes(1).create(); }

試したこと

以下URLを参考にしました。
https://www.kotanin0.work/entry/2020/02/02/210000

以下のように置き換えたりしてみましたが、解消できませんでした。
deleteMailTrigger⇒deleteTrigger
triggerName⇒slackpost

※slackpostはファンクションとして実行用として別途スクリプトを作成していますが、
ここでは省略します。

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

なし

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

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

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

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

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

draq

2020/10/04 10:45

そもそも main は何をトリガーに起動されるのでしょうか。
papinianus

2020/10/05 08:46

> 指定時刻で削除されず、ポスト配信が続いてしまいます。 参考にしているサイトが 8:00 から 10:00 まで毎分処理する内容であり、9:00 や 10:00 (ジャストの時間)に実施するような内容ではないです。 このサイトのスクリプトが完全形ではないように見えるのですが、ホントにこのサイトのスクリプトを完成させることがやりたいことなのでしょうか。質問者様の求めていない機能ではないでしょうか?
kryptontt

2020/10/05 09:24

参考元URLをご参照いただきたいのですが、8時にトリガーを起動するスクリプト、10時にトリガーを削除するスクリプトとなります。
guest

回答2

0

これがないだけです。

js

1function deleteMailTrigger() { 2 deleteTrigger('slackpost'); 3}

投稿2020/10/07 00:54

macaron_xxx

総合スコア3191

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

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

0

投稿2020/10/04 04:56

kuma_kuma_

総合スコア2506

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

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

kryptontt

2020/10/05 09:30

共有ありがとうございます。 こちらは別件で活用していました。 私がやりたかったのは、例えば当日の9時にトリガー実行して、17時になるまで1時間毎繰り返し実行し、17時になったらトリガーを削除するスクリプトができればと考えていたところ、試したことに記載しているURLに行き着いた次第です。
kuma_kuma_

2020/10/05 09:40

> 私がやりたかったのは、例えば当日の9時にトリガー実行して、 > 17時になるまで1時間毎繰り返し実行し、 > 17時になったらトリガーを削除するスクリプトができればとる こだわるつもりはないのですが紹介させていただいた所での方法で、 当日の8時にトリガー起動 9,10,11,12,13,14,15,16,17時に実行するトリガーを設定 あとは使用したトリガーを削除する処理を8時のトリガーで行う。 ※本来トリガー関数を使いまわしたいが削除がうまくいかないので(関数名の為) 時間分だけ用意中身は共通処理とする。 という手法ではいけないのですが? あくまで回答という提案なので質問者様が行わなくても構いませんが...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問