RubyからLine NotifyでLineにメッセージを送るかんたん手順
※こちらがキャプチャ画像有りの詳細手順です。こちらも合わせてご参照どうぞ
アクセストークンの取得
Line Web管理画面にログイン
まずは、以下のLineのWeb管理画面に進む。ログインID&PassはLineアプリにログインする際のもの。
https://notify-bot.line.me/my/
トークン名、トークルームを選択
続いて、Lineへのメッセージ送信の際の通知名や、送信先チャットルーム(トークルーム)を選択します。自分宛なので、「1:1でLINE Notifyから通知を受け取る」でいいかと。
続いて、「発行する」をクリックでトークンが発行されるので、トークン文字列をコピーしておきます。
とりあえずcurlで送信テストする
発行したトークンIDで正常に送信できるかcurlでメッセージを送って確かめます。
詳細はLine Notify APIドキュメントの3ページ目下段「通知系」の章を参照します。
1 2 |
$ curl -X POST -H 'Authorization: Bearer KorehaDummyNoTokenIdDayo3kmr5aQjM7kZ4swehzPBY' -F "message=ビルの窓ガラスによく張ってある、「▼」のマークってなんなの?" 'https://notify-api.line.me/api/notify' {"status":200,"message":"ok"} |
200 OKが返ってくれば、スマホのLineにメッセージが届いてるはずです。
こんな感じで届きます。
Rubyで送信スクリプトを作成する
あとはcurlで成功したPOSTリクエストをRuby的に再現してあげます。以下のスクリプトのトークン文字列だけ入れ替えてあげれば、すぐ動くはずです。かんたんやー。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
require 'net/http' require 'uri' class Line TOKEN = "KorehaDummyNoTokenIdDayo3kmr5aQjM7kZ4swehzPBY" URI = URI.parse("https://notify-api.line.me/api/notify") def make_request(msg) request = Net::HTTP::Post.new(URI) request["Authorization"] = "Bearer #{TOKEN}" request.set_form_data(message: msg) request end def send(msg) request = make_request(msg) response = Net::HTTP.start(URI.hostname, URI.port, use_ssl: URI.scheme == "https") do |https| https.request(request) end end end line = Line.new msg = ARGV[0] res = line.send(msg) puts res.code puts res.body |
こんな感じで実行
1 2 3 |
$ ruby send_msg_with_line_notify.rb 'ビルの窓ガラスによく張ってある、「▼」のマークってなんなの?' 200 {"status":200,"message":"ok"} |