【ラズパイで猫ちゃんカメラ】 その4 ラズパイからPythonでLINEする(メッセージ、画像)LINE Notify

Raspberry Pi

前回↑、Twitterのデベロッパーは却下されてしまったので別の方法を模索する中、LINE Notifyを使ってみることにしました。

こちらはAPI取得が楽ちんです。

自分のLINEや、LINEグループに画像を送るだけの今回のような用途には、こちらの方が適しているかもしれませんね!

トークンの取得

LINE Notify
LINE NotifyはGitHub,IFTTT,MackerelなどのWebサービスからの通知を、LINEで受信することが出来る便利なサービスです。

こちらでトークンを取得します

iPhoneからだとアクセストーン発行ボタンが見えませんでしたが、デスクトップモードにしたら見えました

ご注意ください(^^)

ドキュメントを見ると、トークンは一人当たり100個までのようです

LINE Notify
LINE Notify allows you to send web notifications from GitHub, IFTTT, Mackerel, and more directly to your LINE chats.

まずはメッセージを送ってみる【Python】

まずはメッセージだけを送ってみたいと思います

プログラムはこれだけ↓

 import requests
 
 token = 'あなたの取得したトークン'
 api = 'https://notify-api.line.me/api/notify'
 message = 'Hello!! message check!!'
 
 # 辞書型で記載
 headers = {'Authorization': 'Bearer'+' '+token}
 data = {'message': message}
 requests.post(api,headers=headers,data=data)

たったこれだけでメッセージが送信できてしまいます

「あなたの取得したトークン」と書かれているところに、取得したトークンを記載します

本当は、トークンはOSの環境変数において読み込んだほうが良いらしいですが、ここではしません(以下参照)

LINE NotifyをPythonでお試し - Qiita
LINE Notifyは、外部のWebサービスと連携させて、そこからのメッセージをLINEのトークルームで受信できる通知機能です。 指定されたLINE NotifyのURLにメッセージを投げる(POSTする)ことで自分のLINEのトー...

次に画像を送ってみる【Python】

カメラ画像を送りたいので、これが本来の目的です

jpeg画像を用意して、以下のプログラムを実行すればLINEに画像を送ることができます

ここでは、ラズパイのデスクトップにtest.jpegという画像データをおいて、それを送信します

画像だけを送ることはできないようです(メッセージとセットで送る)

import requests

token = 'あなたの取得したトークン'
api = 'https://notify-api.line.me/api/notify'
images = '/home/pi/Desktop/test.jpeg' # 画像のフルパスを記載 形式はjpgかjpegかpng
message = 'Send image!!'
 
# 辞書型で記載
headers = {'Authorization': 'Bearer'+' '+token}
data = {'message': message}
files = {'imageFile': open(images,'rb')} # バイナリ形式(テキスト以外)
requests.post(api,headers=headers,data=data,files=files)

注意点 : 画像形式

画像の形式で詰まってました

tifは送れません

tif画像が送れず、ずっと悩んでました〜

対応しているのは

jpeg,jpg,png のみ

また、最大サイズは1024×1024です

カメラ画像を送る際は、OpenCVでリサイズしてからにしましょう!

これを超えるサイズの検証はしていないので、超えた場合にどんな挙動(画像が送れないetc)をするか不明です

以下を参考にさせていただきました(^^)

おわり(^o^)

コメント

タイトルとURLをコピーしました