LoginSignup
0

posted at

updated at

シェルスクリプトからLINEメッセージを簡単に定期送信する

LINEには個人アカウントの場合送信予約機能が備わっておらず、定期的なメッセージ送信を行うことができません。そこで今回はシェルスクリプトを使って定期送信を行いたいと思います。(ちなみにiPhoneなら標準機能の「ショートカット」を用いて簡単に送信予約・定期送信ができるので、簡単に済ませたい方はそちらがおすすめです。)

こちらのページから定期送信をしたいグループを選択し、アクセストークンを発行します。(トークンはどこかに記録しておきましょう。)そのグループにLine Notifyを招待しておきます。

まず送信したいメッセージを設定します。
適当な場所に以下の記述を書いたshファイルを作っておきます。(hoge.shとします。)

curl -X POST -H 'Authorization: Bearer [取得したトークン]' -F 'message=[送信したいメッセージ]' https://notify-api.line.me/api/notify

次に定期送信をするための設定をします。
適当なエディタで/etc/crontabファイルに以下の記述を追加します。

* * * * * root sh /[ファイルまでのパス]/hoge.sh

このとき5つの"*"はそれぞれ定期送信するタイミングを指定するためのものです。

  • 1つ目:分[0-59で指定]
  • 2つ目:時[0-23で指定]
  • 3つ目:日[1-31で指定]
  • 4つ目:月[1-12で指定]
  • 5つ目:曜日[0-6で指定, 0=日, 1=月, .. ,6=土]

となっています。これにより最短で毎時、最長で毎年の間隔で送信をすることができます。例えば毎日18時に送りたいのであれば、

* 18 * * * root sh /[ファイルまでのパス]/hoge.sh

のように指定します。これで指定した時間に送信できるはずです。送信されない場合は、単純に記述が間違っていること、権限が与えらえていないこと、crondが動いていないことなどが考えられます。
crondが動いていない場合は

sudo /etc/init.d/cron restart

で再起動しておきましょう。

おわり。

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
What you can do with signing up
0