はじめに
当記事はGAS
からOpenWeatherMap
を用いて、お天気LineBot
を作成した記事の後編です。
前編→こちら
後編の内容はそこまでないとはいえ遅くなって申し訳ありませんでした。(期待している人なんていない)
各所に変なコードの記述や分かりにくい部分があるかもしれませんが、優しくご指摘いただけると幸いです。
また、GitHubにもコードをあげてみたので万が一物好きな方がいれば見てみてください。
どういうもの?
こんな感じです。
簡単に説明すると、
- 地名を入力する。
- 入力した地名の住所が表示され、合っているか聞かれる。
- はいを選択した場合は日付ピッカーが表示され、選択して送信するとスプレッドシートに登録され、現在発表されているその日その地点の天気を教えてくれる。
- いいえを選択した場合は泣いて許しを請います😭
- 「確認」と入力すると、現在登録されている日時・地点の天気予報を教えてくれます。
- 朝7時ぐらいに自動的に現在登録されている日時・地点の天気予報を教えてくれます。
作成
作成手順を記します。
大まかな流れは以下の通りです。
タスク | 記事 |
---|---|
①各種APIキーを集める。 | 前編 |
②めっちゃコード書く。 | 前編 |
③LINE Developersに登録する。 | 後編 |
④定期作業のトリガーを設定する。 | 後編 |
③LINE Developersに登録する。
前回、大量に書いたコードをLINE Developers
に登録する必要がありますが、その前にちゃんとLINEと連携できるかを確認します。
LINE アクセストークンを取得した際に表示されるQRコードを読み取って、あらかじめ友達登録をしておきます。
test.gs
に以下のコードを書いてみます。
// LINE Message API アクセストークン
let ACCESS_TOKEN_TEST = "[前回の①各種APIキー集める。で取得したLINEのアクセストークン]";
function test() {
try{
UrlFetchApp.fetch("https://api.line.me/v2/bot/message/broadcast", {
method: "post",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + ACCESS_TOKEN_TEST,
},
payload: JSON.stringify({
messages: [
{
type: 'text',
text: 'メッセージテスト'
},
]
}),
});
} catch (e) {
logger(e);
};
}
LINEに以下のちゃんとメッセージが送られることを確認します。
LINE Developers
のMessaging API設定
を押下し、Webhook設定
のWebhook URL
に先ほどコピーしたURLを貼り付けます。
その後表示される検証
ボタンできちんとURLが生きているか調べることもできます。
動作を確認してみます。
きちんと登録されましたね!!
LINEに発言するたびに余計な返信がある場合はMessaging API設定
→応答メッセージ
→編集
→応答設定
→詳細設定
→応答メッセージ設定
からステータスをオフにすれば余計な返答が無くなります。
これでLINE Developers
への登録方法は終了です。
④定期作業のトリガーを設定する。
スクリプトエディタの左側のトリガー(目覚まし時計マーク)
を押下し、トリガーを追加
ボタンを押下します。
すでに一つトリガーを設定したものがありますが、気にしないでください。
以下のように登録します。
項目 | 値 |
---|---|
実行する関数を選択 | regularWork |
イベントのソースを選択 | 時間主導型 |
時間ベースのトリガーのタイプを選択 | 日付ベースのタイマー |
時刻を選択 | お好きな時間を |
-
実行する関数
はreglarWork
を定期的に実行したいので設定します。 - 時刻を選択`はだいたい下限ギリギリの時間にきます。
保存
ボタンを押せば完成です!
毎朝8時前にモーニング天気予報をしてくれます!
(写真は名前が微妙に違いますが、同じ機能のものです。説明用に一から作ったものを今まで写真で示しています。)
後編 おわりに
色々と時間が取れずに後編の執筆が滞り申し訳ありませんでした。
初めて本格的なLINE Botを作れてとりあえず満足しています。
特に苦労したところはLINE Botの設定等ではなく、日本標準時やUNIX時間や世界標準時…時間の変換の作業でした。
コードがおかしかったりもっとこうした方がいいよ!等ありましたらご指摘していただくと幸いです。
長々と見てくださりありがとうございました。
便利だったサイトやアドオン等
-
Talend API Tester
- APIを整形してくれたり、パラメーターやJSONデータを見やすく表示してくれたりする神すぎるアドオン
-
JSON Formatter
- Chrome上に表示されたJSONデータを見やすく表示してくれるアドオン。
-
UNIX時間変換ツール
- UNIX時間と人間が分かる時間を相互に変換してくれるサイト。
-
Google Apps Script GitHub アシスタント
- GASに書いたコードをGitHubと連携してくれるアドオン。
-
GASのスクリプトプロパティをコードで設定する方法
- プロパティストアの設定方法はこちらに詳しく書かれています。
-
いらすとや
- 皆さんご存知いらすとや。適当なLINEBotのアイコン作成するときにお借りしました。