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

2017年7月28日

以前、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

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

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

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

さて、60爺も、このシェルをもらって早々に試してみました。access_token を取得して、上記 curlコマンドの {access_token} にセットします。

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

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

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

スポンサーリンク

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 に関する記事が二つありました。

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


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)とステッカーが送付されてきました。

応用編

Pythonで、「ステッカー ランダム表示」:仕事終了10分前に LINE Notify にステッカーとメッセージを送付、「天気予報表示」:今日明日の天気予報を取出して、毎朝6時50分に LINE Notify に送付の2つのプログラムを作成しました。

ステッカー ランダム表示

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

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

天気予報表示

今日明日の天気予報を取出して、毎朝6時50分に LINE Notify に送付するようにしました。

こちらは、ステッカーの代りに天気予報から得た天気に従って、自分で作成した天気の画像を選択して送付しています。

スポンサーリンク
この記事を書いた人

60爺

60路を越え、RaspberryPi と出会い、その関係でブログ開設(2017/2~)となりました。始めてみると、コツコツやるのが性に合ってしまい、漢字の記事から家の補修・将棋・windows10関係・別名・言い方などジャンルを拡大して今に至ってます。まだまだ、元気なので新たな話題を見つけて皆様に提供できればと思っています。「プロフィールはこちら

TIPSLINE_Notify

Posted by 60爺