はじめに
最近、MATLABで機械学習もどきを行っている。
そうすると、いつ学習が終わるのかとソワソワしてしまうので、それの予防に重宝する。
できること
メッセージ・画像・スタンプの通知ができる。
なお、ここでのコードではメッセージの送信のみを想定している。
また、こちら(自分のLINEアカウント)からのメッセージには反応しない(APIの制限)。
環境
- MATLAB R2020a
準備
事前にアクセストークンを発行しておく。
参考: アクセストークンの発行
実装
function status_code = LINE_Notify(token, msg)
% input->token: YOUR access token for LINE Notify
% msg: your message
arguments
token (:, :) char = 'YOUR ACCESS TOKEN'
msg (:, :) string = "test message from MATLAB"
end
url = "https://notify-api.line.me/api/notify";
opt = weboptions('HeaderFields', {'Authorization', ['Bearer ', token]});
response = webwrite(url, 'message', msg, opt);
status_code = response.status;
end
(申し訳程度の)解説
MATLABにはWEBアプリ操作に、HTTPインターフェースとRESTful Web サービス関数のどちらかを使える。
今回使用したweboptions
やwebwrite
はRESTful Web サービス関数の一種。
なお、HTTPインターフェースのほうが複雑なことができるらしい。
LINE NotifyのAPIを叩くには、認証して貰う必要があるので、opt =
以下のヘッダの設定が必要となる。
あとは、URLとメッセージ、opt
をwebwrite
の引数にして渡す。
実行できたかの確認に、一応HTTPステータスコードを返している。いらないかもね。
HTTPインターフェースを使ってもできるんだろうけど、
僕がやるとメッセージを渡していても「メッセージが空だよ」とコード400を返されたので諦めた。
誰か、こっちでできた人いたらコメントください。
参考
- LINE Notify公式
- Pythonでやるならこちら