28
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Posted at

やりたいこと

長い処理が終わった後などにスマホに通知がほしいです。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:

28
24
0

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
28
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?