PicricBlog

【GAS】Google Apps Scriptで「こずえの『お天気よほー』コーナー」LINE Botを作る。

はじめに

某ウイルスのおかげで家から出られない状況が続いていますがみなさんはいかがお過ごしでしょうか。

わたしは家に引きこもっています。

ゲームにも飽きてきたのでなにか新しいことでもはじめるか~と思い、今回のタイトルのようなことをやってみました。

初心者なので至らない点等あるかと思いますがご容赦ください。

目次

こずえの『お天気よほー』コーナーとは

アイドルマスターシンデレラガールズスターライトステージデレステ)にて昨年末にSun!High!Gold!という楽曲のイベントが行われました。そのイベントのオープニングコミュにてこのようなシーンがありました。

f:id:picrin122:20200413181924j:plain

f:id:picrin122:20200413181938j:plain

オープニングコミュ(Precious morning sun)にて

毎朝こずえちゃんが"お天気よほー"をしてくれたらどれだけ幸せか……、などという事を考えながら今回のようなbot製作に取り掛かりました。

実装

  1. アカウント作成

    LineDeveloperに登録して各種設定を行う必要がありますので、まずこちらの記事の通りにbot用のアカウントを作成します。Herokuなどを使う手段もありますが今回はタイトルの通りGASで作っていきます。

    qiita.com

  2. 天気情報の取得

    オウム返しBotは作れましたか?

    次にこちらの記事を参考に、メッセージ受理のために必要なユーザIDや今回の根幹となる天気情報を取得していきます。

    toranoana-lab.hatenablog.com

    ただ、userIdをconsole.logで取得しようとしても上手く表示されなかったため、

    'messages': [{
    'type': 'text',
    'text': message,
    }],

    の部分を

    'messages': [{
    'type': 'text',
    'text': message + json.events[0].source.userId,
    }],

    にして無理やり取得しました。

    また、記事内の書き方だと東京地方の気象データしか得られないため、任意の地点のデータを得たい場合は

    var response = UrlFetchApp.fetch("https://www.drk7.jp/weather/xml/13.xml", options);

    xmlの部分を気象庁の天気予報情報を XML で配信 - drk7jpから選択して変更し、

    const area = "東京地方"

    の部分を任意の地域名にする必要があります。

    例えば神奈川県東部の気象データなら、

    const area = "東部"
    //--------(略)--------
    var response = UrlFetchApp.fetch("https://www.drk7.jp/weather/xml/14.xml", options);

    のような感じです。

    ここまでを踏まえ、かつ口調をこずえちゃん風にしたところ次のようになりました。

    f:id:picrin122:20200413202611j:plain

    ただ、今のままだと「雨」の部分が漢字になってしまってます。

    しかし今回のbotイメージは、会話がすべてひらがな表記である遊佐こずえ。この問題は無視できません。

  3. ぶんしょうをひらがなにする

    いろいろと手段はあるでしょうが、今回はこちらを参考に気象情報として与えられた文字列をまるごとひらがな化する方法で解決しました。

    qiita.comf:id:picrin122:20200413202604j:plain

おわりに

今回初めてLINEbotを作りましたが、想像以上に簡単に作れるなという感想でした。また機会があったら別の機能を備えたbotも作ってみたいです。

それでは