電気代を毎日連絡してくれるLINEbotを作る(4):LINE Messaging APIを使ってRailsからLINEにメッセージを送る

Tech

これまでのあらすじはこちらから↑

前回はオクトパスエナジーのAPIを叩いて電気代を取得しました。

今回はRailsからLINE Messaging APIを叩いて取得した電気代情報をLINEメッセージにして送ります!

LINE Messaging APIとやり取りするチャネルを作る

コンソールに行きチャネルを作成します

MessagingAPIを選択します。チャネルの情報を入力する必要があるので、入力していきます。

line-bot-sdk-ruby を導入する

GitHub - line/line-bot-sdk-ruby: LINE Messaging API SDK for Ruby
LINE Messaging API SDK for Ruby. Contribute to line/line-bot-sdk-ruby development by creating an account on GitHub.

gemが用意されているのでこれを使ってやりとりします。

チャネルを自分のLINEに追加する

Messaging API設定に作ったチャネルを追加するためのQRコードが表示されているので、それを使って自分のLINEに登録します。

デフォルトのメッセージが送信される。スルーする。

自分のユーザーIDを確認する

push_messageを利用すればメッセージを送信することができますが、そのためには送り先のユーザーIDが必要になります。LINEのIDとは異なるものです。

ユーザーIDを取得する
LINE Developersサイトは開発者向けのポータルサイトです。LINEプラットフォームのさまざまな開発者向けプロダクトを利用するための、管理ツールやドキュメントを利用できます。LINEログインやMessaging APIを活用して、...

これを見ると開発者の画面からユーザーIDを確認できるようでしたが、自分の場合そういう動線はありませんでした。

こちらでも似たような質問があるようなので、ユーザーIDをとることは諦めました。

ブロードキャストメッセージでメッセージを送る

ブロードキャストメッセージ機能があります。他にこのLINEチャネルを友達登録する人が現れると、自分の電気代をさらけ出してしまうことになりますが、まぁこのチャンネルを友だち登録する人が発生するようなことは無いと考えていいでしょう( ˘ω˘)

  def send_line_message
    message = {
      type: 'text',
      text: 'hello'
    }
    
    client = Line::Bot::Client.new do |config|
      config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
      config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
    end

    client.broadcast(message)
  end

ブロードキャストメッセージを送るメソッドを作り、 /octopus/index で呼ぶようにしました。

試しに/octopus/indexにアクセスすると、メソッドが呼ばれ無事メッセージを送信することができました。

メッセージを電気代にする

/octopus/indexのページで表示していた電気代の文字列をメッセージに渡します。

これで電気代をLINEで伝えてくれる仕組みを作ることができました。

RailsからLINEメッセージを送ることができた

今回は、RailsからLINE Messaging APIを叩いてLINEメッセージを送ることができました!

あとは定期的に実行すればいいですね!もう少しです٩( ‘ω’ )و

電気を見直してみませんか?

最後に、オクトパスエナジーの紹介をします!

オクトパスエナジーの電力量料金(1kWhあたりの料金)は、東京電力と比較して安く設定されています!電気代は毎月必ず来るものなので、少しでもオトクなところと契約したいですよね。

電力消費量東京電力
従量電灯B
オクトパスエナジー
グリーンオクトパス
120kWhまで19.88円19.68円
120kWh超えて300kWhまで26.48円24.35円
300kWh超える30.57円26.50円
電力量料金の比較(30A)

さらに、こちらのリンクから契約すると、あなたと私、それぞれに5000円のボーナスが貰えます!一緒にお得になりましょう٩( ‘ω’ )و

タイトルとURLをコピーしました