やりたいこと
長い処理が終わった後などにスマホに通知がほしいです。Slack への通知でもいいのですが、個人的には LINE の方が気づきやすいので LINE へ通知してほしいです。
方法
LINE Notify というサービスを使います。まずサービスを使用するために必要なトークンを発行します。
🔽 https://notify-bot.line.me/my/ にアクセスします。LINE のメールアドレスとパスワードでログインする必要があります。そして「トークンを発行する」ボタンをクリックします。
🔽 任意のトークン名を入力します。そして通知を送信するトークルームを選択します。僕は個人宛にメッセージを送信してほしいので「1:1 で LINE Notify から通知を受け取る」を選択しました。それから「発行する」をクリックします。
🔽 発行されたトークンが表示されるのでメモしておきます。
次に 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>
LINE に通知が無事に届きました