Ruby
Line

自分の LINE に Ruby で通知を送る


やりたいこと

長い処理が終わった後などにスマホに通知がほしいです。Slack への通知でもいいのですが、個人的には LINE の方が気づきやすいので LINE へ通知してほしいです。


方法

LINE Notify というサービスを使います。まずサービスを使用するために必要なトークンを発行します。

🔽 https://notify-bot.line.me/my/ にアクセスします。LINE のメールアドレスとパスワードでログインする必要があります。そして「トークンを発行する」ボタンをクリックします。

01.png

🔽 任意のトークン名を入力します。そして通知を送信するトークルームを選択します。僕は個人宛にメッセージを送信してほしいので「1:1 で LINE Notify から通知を受け取る」を選択しました。それから「発行する」をクリックします。

02.png

🔽 発行されたトークンが表示されるのでメモしておきます。

03.png

次に LINE Notify の API を使用するための Ruby プログラムを用意します。

require 'net/http'

require 'uri'

class LineNotify
TOKEN = 'ここに発行したトークンを記入する'.freeze
URL = 'https://notify-api.line.me/api/notify'.freeze

attr_reader :message

def self.send(message)
new(message).send
end

def initialize(message)
@message = message
end

def send
Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |https|
https.request(request)
end
end

private

def request
request = Net::HTTP::Post.new(uri)
request['Authorization'] = "Bearer #{TOKEN}"
request.set_form_data(message: message)
request
end

def uri
URI.parse(URL)
end
end

では実際に API を叩いてみます。

LineNotify.send('🐢 長い処理が終わりました。')

#=> #<Net::HTTPOK 200 readbody=true>

04.png

LINE に通知が無事に届きました :tada: