ラズパイからcurlコマンドでLINE Notifyにメッセージとステッカーを送る

1.シェルで LINE Notify にメッセージ送信

以前、50オヤジから「これを見てくださいよ」と言われて、見せてもらったのが以下のシェルです。

#!/bin/sh
access_token="……………………"
subject=$1
body=$2
curl -X POST -H "Authorization: Bearer ${access_token}" -F "message=${subject}: ${body}" https://notify-api.line.me/api/notify

LINE Notify というサービスです。

これを使用すると、ラズパイからcurlコマンドを打つことで、LINE にメッセージを送ることができます。

これを行うには、access_token なるものを入手する必要があります。入手方法は、こちらのページを参照してください。

さて、60爺も、このシェルをもらって早々に試してみました。

access_token を取得して、上記 curlコマンドの {access_token} にセットします。

そして、LINE.shと言う名前を付けて実行してみました。

mizutan@raspbian:~ $ ./LINE.sh test

すると、LINE Notify宛に、メッセージが届きました。

2.LINE Notify へのメッセージ送信関係記事

curl コマンドを下記に再掲しますが、オプションを指定することで、LINE Notifyにメッセージを送ることができます。

curl -X POST -H "Authorization: Bearer ${access_token}" -F "message=${subject}: ${body}" https://notify-api.line.me/api/notify

オプションを簡単に解説しておきます。

  • -X :リクエストメソッドの指定
  • -H :リクエストヘッダの指定
  • -F :フォームデータの送信
  • URL:LINE Notifyの通知用エンドポイント

LINE Engineering BLOG を見ると、この LINE Notify に関する記事が二つありました。

コマンドラインから LINE にメッセージを送れる LINE
LINE NotifyにSticker送信機能と画像アップロード機能が追加されました

上の記事では、1.で実際に送付したメッセージの解説をしています。そして、下の記事では、LINEにあるステッカーをメッセージと一緒に送信する方法が書いてあります。

3.LINE Notify にステッカーを送付

上述したように、メッセージだけではなくステッカーも curl コマンドを使用するだけで実行できるようです。

早速試してみましょう。

curl -X POST https://notify-api.line.me/api/notify -H 'Authorization: Bearer YOUR_PERSONAL_ACCESS_TOKEN' -F 'message=test' -F 'stickerPackageId=1' -F 'stickerId=113'

アクセストークンに、60爺のそれを設定して送ってみたところ、LINE Notify にメッセージ(test)とステッカーが送付されてきました。

4.応用編

2018/9/26下記記事をアップ

ステッカー一覧があることに気づいたので、以下の仕様に従って Python でプログラムを書いてみました。

  • 仕事の終了時間10分前に、LINE にステッカーとメッセージを送ります。
  • ステッカーは、毎回、ランダムに選択します。
  • 土日は仕事がないので送らないようにしています。

ラズパイで定時にランダムにステッカーを取出してLINE Notifyへ送付する

2020/11/3下記記事をアップ

天気予報を LINE Notify に出力しました。

こちらは、ステッカーでなく、自分で作成した天気の画像を送付しています。

取得した今日明日の天気予報をPythonでLINE Notifyに送付