前提・実現したいこと
Slackにて、TimeTreeというスケジュールアプリに登録されている本日の予定を
毎日決まった日時に自動投稿するしくみを作りたいと考えています。
SlackのTimeTreeアプリは、たとえば「@TimeTree today」とSlackに投稿すると、
以下画像のような形で本日の予定が返ってきます。
これを利用し、毎朝8:30に「@TimeTree today」と自動投稿することで、
TimeTreeの本日の予定が毎日自動でSlackに投稿されるといった形にしたいです。
試したこと
(1) Slackのリマインダー機能を利用した定時投稿
以下のスラッシュコマンドにてリマインダーを設定
/remind #general @TimeTree today at 8:30am every day
[結果]
正常にリマインダーは動作し投稿が行われますが、投稿された内容に対してSlackの
TimeTreeアプリが反応しませんでした。
おそらく投稿内容が以下の通りで文頭に「リマインダー: 」という形式外の単語が
入っているためと思われます。
リマインダー : @TimeTree 今日
(2) Incoming WebhookとGASを利用した自動投稿
該当チャンネルにてIncoming Webhookをアクティブにした上で、ネットの情報を参考に
GASにて以下のスクリプトを作成しました。
GoogleAppScript
1var postUrl = 'https://hooks.slack.com/services/********************'; 2var username = 'test'; // 通知時に表示されるユーザー名 3var icon = ':hamster:'; // 通知時に表示されるアイコン 4var channel = '#schedule' 5var message = '<@TimeTree> today'; // 投稿メッセージ 6 7function myFunction() { 8 var jsonData = 9 { 10 "username" : username, 11 "icon_emoji": icon, 12 "channel": channel, 13 "text" : message 14 }; 15 var payload = JSON.stringify(jsonData); 16 var options = 17 { 18 "method" : "post", 19 "contentType" : "application/json", 20 "payload" : payload 21 }; 22 UrlFetchApp.fetch(postUrl, options); 23}
Apps Scriptの[実行]ボタンでテスト投稿を実施。
[結果]
以下の通り投稿自体は問題なく行われますが、TimeTreeのbotユーザーへのメンションが
有効にならず「@TimeTree」という文字列として処理されてしまいました。
おそらくそのためにTimeTreeアプリからは反応がありませんでした。
知りたいこと
前述の「試したこと」のスクリプトなどに誤りがあるためうまく行っていないようであれば、
修正箇所をご教示ください。
前述の「試したこと」ではそもそも無理ということであれば、別の方法が知りたいです。
知見がある方がいましたらどうぞよろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。