LoginSignup
3

More than 1 year has passed since last update.

花粉のピークは過ぎたかもしれないけど、enebularで花粉bot作ってみた

Last updated at Posted at 2022-03-19

2022年2月28日にenebularのクラウド実行環境の機能がリリースされました

今までenebularで作成したフローをサービスとして動かすには、HerokuやAWS Lambdaの環境を自前で用意してデプロイする必要があったけど、その必要が無くなった感じです❗
実はAWSとかHerokuとか無料枠を超えてそのうち請求が来るんじゃないかとビクビクしながら使ってましたw
(勝手に請求されることは無いと思いますが)

イメージ的にはこんな感じです。
image.png

このクラウド実行環境では、定期的にフローを動作させるか、URLを発行してアクセスするか、2通りの方法でフローをサービスとして動作させることができます。例えば、定期的に情報をチェックして、更新されていたら通知するとか、他のサービスのWebhookを受け先に使うとか、Webページを作ることも可能です。

無料でも以下の条件で利用することができます。

  • 1ヶ月のHTTPリクエスト回数が50000回まで
  • 1ヶ月の合計実行時間が24時間まで

詳しくはオフィシャルのドキュメント「実行環境とは」を確認して下さい。

ちょっとLINEbotを作ってみたかったので、LINEbotに対して、位置情報を共有するとその場所の花粉量を教えてくれるというものを作ってみました。
image.png
次の流れで作ってみたので、手順を紹介します。

  1. クラウド実行環境の準備
  2. 公式LINEとLINE Messaging APIの設定
  3. フローの作成とデプロイ

クラウド実行環境の準備

enebularのユーザー登録とプロジェクトの作成が済んでいれば、クラウド実行環境を作れます。(enebularのはじめ方ははじめよう、enebular (1)を参照ください)

プロジェクトのダッシュボードのメニューに「実行環境」があるので、そこをクリックします。
image.png
実行環境の画面右下の[+]ボタンをクリックします。
image.png
実行環境作成のダイアログが表示されるので、名前を入力して「OK」をクリックします。実行環境作成には1~2分ほどかかります。
image.png
次にURLの生成を行います。
実行環境の設定を開き、「設定を編集する」をクリックします。
image.png
HTTPトリガーの項目で、スイッチをOFFからONにするとパス欄にパスを入力します。
このパスはenebular全体でユニークなものになります。すでに同じパスが存在する場合はエラーになりますので、その場合は異なるパスを入力して下さい。
image.png
設定編集画面の右下に「保存」ボタンがあるので、それをクリックします。
image.png
以下の場所のコピーボタンをクリックするとURLがクリップボードにコピーされます。
このURLをLINE Messaging APIのWebhook URLに登録します。
(LINE Messaging APIの設定方法は次項参照)
image.png

公式LINEとLINE Messaging APIの設定

LINEbotを作るにはまず、LINE公式アカウントを準備する必要があります。
LINE for Businessから「アカウントの開設(無料)」をクリックします。
image.png

次のページで、「LINE公式アカウント開設(無料)」をクリックします。
image.png

次のページで、「アカウントを作成」をクリックします。次に「メールアドレスで登録」をクリックします。
メールアドレスを入力し、「登録用のリンクを送信」をクリックするとメールが送られてくるので、メール内の「登録画面に進む」をクリックします。
image.png

登録画面では、名前とパスワードを入力し、「登録」をクリックします。確認画面が表示されるので、問題なければ次に進み、最後に「サービスに移動」をクリックして下さい。
image.png

次の画面で作成するLINE公式アカウントの情報を入力します。個人的に使うものであれば業種は個人にすればOKです。入力後、「確認」をクリックし、問題なければ「完了」をクリックします。LINE公式アカウントの作成が完了したら、「LINE Official Account Managerへ」をクリックします。
image.png

最初にLINE Official Account Managerに入ると公式アカウントをLINEの友達に登録するQRコードが表示されるので、このタイミングで自分のLINEに友達登録しておいたほうが便利です。
image.png

次にLINE Messaging APIを設定を行うため、画面上部の「応答モード:bot」をクリックします。
image.png

応答は、enebularのクラウド実行環境上のアプリから行なうようにするため、「応答メッセージ」はOFF、「Webhook」はONにします。
image.png

次にMessaging APIを使用開始するため、左のメニューから「Messaging API」をクリックします。
image.png

「Messaging APIを利用する」をクリックします。
image.png

開発者情報を入力する必要があるため、入力します。

  • メールアドレスはLINE公式アカウントと同じものでもOKです。
  • プロバイダーは個人であれば、個人等を入力して下さい。
  • プライバシーポリシーや利用規約は入力しなくてもOKです。
    image.png

最後に問題なければ「OK」をクリックします。
image.png

作成されたMessaging APIにアクセスするための「Channel secret」が表示されます。
フローで使用しますので、コピーして控えておきます。
ここで、Webhook URLに控えておいたenebularのクラウド実行環境のURLを入力し、保存をクリックします。
image.png

次にチャンネルアクセストークンを発行するため、「https://developers.line.biz/console/ 」にアクセスします。
作成したプロバイダーが表示されているので、それをクリックし、チャンネル設定から作成したチャンネルをクリックします。
image.png

次の画面で、最初に作成した公式チャンネルが表示されるので、それをクリックします。
image.png

チャンネルの「Messaging API」タブを開きます。
image.png

チャンネルアクセストークン(長期)の「発行」ボタンをクリックし、トークンを発行します。
フローで使用しますので、コピーして控えておきます。
image.png

これで公式LINEとLINE Messaging APIの設定完了です。
ここで控えたChannel secretチャンネルアクセストークンはフローのLINEノードで使用します。

フローの準備とデプロイ

image.png
作ったフローはこんな感じです。ReplyMessageと書いてあるノードがLINEで応答するノードです。
クラウド実行環境では、LCDP inノードから始まります。そして、LCDP outノードで終わる必要があります。
LCDP outノードに到達しない場合は、毎回設定したタイムアウト時間で実行終了することになり、月の実行時間を使い切ってしまうことになります。
逆にLCDP outノードに到達するとすぐにフローが終了してしまうので、時間のかかる処理を行う際は、完了を待つようにして下さい。
上記のフローでは、LINEの返信完了やエラーのキャッチでLCDP outノードに行くようにしてあります。
(基本的には意識する必要ないですが、LCDP inノードが出力するmsg.uhuru.lcdpNodeオブジェクトをLCDP outノードに入れる必要があるので、その点も注意して下さい。)

作成したフローは、以下で公開しています。LCDPノードと花粉量を取得するPollenノードも必要になるので、合わせてインポートして下さい。

すべてインポートしたらフローを開き、ReplyMessageノードのプロパティを開きます。ここで、控えておいたLINE公式チャンネルのChannel secretチャンネルアクセストークンを入力します。
image.png

入力が終わったら、右上の「デプロイ」ボタンをクリックし、保存します。

次にクラウド実行環境に作成したフローをデプロイします。クラウド実行環境の「概要」を開き、「デプロイ」ボタンをクリックします。
image.png

インポートしたフローを選択し、「デプロイ」ボタンをクリックします。
image.png

以下の画面に移るので、「デプロイ中」から「デプロイ済み」になるまで待ちます。
image.png

これで準備は完了です。

動作確認

実際にLINEで位置を送って確認します。

image.png

クラウド実行環境は初回起動に若干時間がかかるので、送ってから10秒ぐらい返ってくるのにかかりますが、ちゃんと花粉の量が返ってきました。
今回のフローでは、位置情報が送られてくるのが前提となっているので、文字を送るとエラーになります。
LCDPinノードReplyMessageノードの間に受け取るメッセージに応じたメッセージを返すこともできるので試してみて下さい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3