機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

LINE notifyチュートリアル コマンドライン Rubyでの実行 複数グループへの同時投稿

プログラミング

LINE notifyのチュートリアルです。コマンドラインでの実行から、Rubyでの実行、複数グループへの同時投稿を紹介します。

LINE notify トークンの発行方法

プログラミング

トークンを発行する方法です。

まずLINE側で、notifyを利用したいグループを適当に新規作成します。
[get_title https://notify-bot.line.me/my/] > トークンを発行する で、グループを選択します。

進んでいくと、APIキーが表示されます。これをコピーしておきましょう。

LINE notify コマンドラインで実行

プログラミング

LINE notifyをBashのコマンドラインで実行します。

先程取得したAPIキーを、以下のYOUR_API_KEYに埋め込んで、スクリプトを実行してみましょう。

curl https://notify-api.line.me/api/notify -X POST -H 'Authorization: Bearer YOUR_API_KEY' -F 'message=メッセージ。'

メッセージ。とラインが来たら成功です。

LINE notify Rubyで実行

プログラミング

LINE notifyをRubyで実行する方法です。

require 'open3'

@token = 'YOUR_API_KEY'
Open3.popen3("curl https://notify-api.line.me/api/notify -X POST -H \'Authorization: Bearer #{@token}\' -F 'message=#{ARGV[0]}'")

ruby /mnt/f/__HDD_BACKUP__/pg/create_apps/line_notify/notify.rb hogeと第一引数にメッセージを指定して実行します。
これをコマンドに登録しておけば、簡単に実行できるようになり便利です。

LINE notify 複数のグループに送信

プログラミング

以前作ったスクリプトを紹介します。

複数のグループに同時に同じメッセージを送信したい場合に便利です。

README.md


# What? Terminal App of Line notify api. # usage $ ruby line_notify.rb 'Enter your message.' '1' *help* $ ruby line_notify.rb help *methods* \````rb notify=LINE_notify.new notify.verification_argv # if argv is "help" then puts help. notify.confirm # for confirm # notify.message='your good message.' # notify.token=YOUR_TOKEN # notify.token_select='123' # select token number of yaml p notify.help #puts help notify.multi_post \```` *yaml* \````yaml config: keys: group_1: '' #share group_2: '' #dev group_3: '' #notify_3 group_4: '' #notify_4 \````

main.rb


require 'open3' require 'yaml' class LINE_notify attr_accessor :message, :token, :token_select def initialize @config=YAML.load_file(File.expand_path('../config.yaml',__FILE__)) @message,@token_select = ARGV[0],ARGV[1] end def confirm if @token_select.nil? then puts %("argv2 is nil. to exit.");exit elsif @message.nil? then puts %("argv1 is nil. to exit.") ;exit end end def notify @command=%(curl https://notify-api.line.me/api/notify -X POST -H 'Authorization: Bearer #{@token}' -F 'message=#{@message}') Open3.popen3(@command) end #notify end def multi_post 9.times do |index_num| if @token_select.match(/#{index_num}/) @token=@config["config"]["keys"]["group_#{index_num}"] notify() puts %(group_#{index_num}: #{@message}) else puts %(Skip to group_#{index_num}.) end end end def verification_argv if ARGV[0] =~ /help|-h|--h/ then puts help() end end def help open(File.expand_path('../README.md',__FILE__)).read end end

config.yaml

config:
  keys:
    group_1: '' #share
    group_2: '' #dev
    group_3: '' #notify_3
    group_4: '' #notify_4

ctl.rb


require_relative 'main' notify=LINE_notify.new notify.verification_argv # if argv is "help" then puts help. notify.confirm # for confirm # notify.message='your good message.' # notify.token=YOUR_TOKEN # notify.token_select='123' # select token number of yaml # p notify.help #puts help notify.multi_post

簡単な使い方

READMEがわかりにくいので簡単な使い方を紹介します。

まず、ctlはいじらなくていいです。本当はコマンドラインじゃなくて直接実行でもできるようになっているのですが、使わないだろうし。
よって、READMEも読まなくていいです。

大事なのは、config.yamlにAPIキーを記載するということと、引数の書き方です。

引数は、第一引数にメッセージ、第二引数にconfig.yamlに基づいた、メッセージを送信したい番号を羅列します。

ruby ctl.rb メッセージ。 '13'

これだと、1と3のAPIキーに応じたグループにメッセージを送信することになります。

実行すると、こうなります。

yuis@DESKTOP-UHU8FSH:/mnt/c/ContaCam$ ruby /mnt/f/__HDD_BACKUP__/_document/poblic/files/pg/ruby/LINE_notify/ctl.rb hoge 1234
Skip to group_0.
/usr/lib/ruby/2.3.0/open3.rb:199: warning: Insecure world writable dir /home/yuis/.local/bin in PATH, mode 040777
group_1: hoge
group_2: hoge
group_3: hoge
group_4: hoge
Skip to group_5.
Skip to group_6.
Skip to group_7.
Skip to group_8.

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

Ruby windowsのソフトウェアを外部コマンドから開く・起動する
Ruby sinatra 使い方
Ruby hash キーが重複していた場合は2つの値を加算する
Ruby jrubyをインストールしてからGEMのパスが変わってしまった場合の対処
Rubyでhashや配列をeach_with_indexで最初と最後の処理だけ特別な処理をする
Rubyで配列の集合演算
Rubyでmechanizeでブログをキーワード検索して最初の投稿を取得する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu