【Python】Python から Line Notify で LINEメッセージを送信する
おはようございます。
Bitflyer で取得できる情報を LINE で通知するために、
とりあえず試しにプログラムを書いてみました。
ただのサンプルプログラムなのですが、プログラムは前回のものを流用しました。
【Python】BitflyerのTickerをSQLiteに突っ込む
スポンサーリンク
Line Notify の利用準備
次のURLにブラウザからアクセスし、LINEのアカウントでログインします。
https://notify-bot.line.me/ja/
アクセストークンの発行
ログイン後、アクセストークンの発行セクションにある、「トークンを発行する」ボタンをクリックします。
自分のLINEアカウントに登録されている、「自分」またはグループトークの選択画面が表示されるので、ひとまず自分を選択して「発行する」ボタンをクリックします。
発行されたトークンをコピーし、テキスト等に張り付けておきます。
ページを離れると発行されたトークンはどこからも確認できなくなってしまうので気を付けましょう。
マイページに戻ると、連携(トークンを発行した)設定が表示されるようになります。
解除する場合はこの画面より「解除」ボタンをクリックしてください。
画面の修正
Main.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <div style="clear:both; padding-top:10px;"> <div class="entry_title"> <div class="pull_left">資産情報</div> <div class="pull_right"> <input type="button"value="更新"onclick="updateBalance();" /> <input type="button"value="LINE送信"onclick="sendLine();" /> </div> </div> <table id="balanceTable"> <tr><th>円</th><td id="jpy"></td><th>イーサクラシック</th><td id="etc"></td></tr> <tr><th>ビットコイン</th><td id="btc"></td><th>ライトコイン</th><td id="ltc"></td></tr> <tr><th>ビットコインキャッシュ</th><td id="bch"></td><th>モナコイン</th><td id="mona"></td></tr> <tr><th>イーサ</th><td id="eth"></td><th>リスク</th><td id="lsk"></td></tr> </table> </div> |
プログラムの修正
新規クラス追加
LineNotifyApi.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | # -*- coding: utf-8 -*- """ Created on 2018/03/14 @author: doraxdora """ importrequests importlogging api_url="https://notify-api.line.me/api/notify" classLineNotifyApi: """ Line Notify を利用するためのツールクラス """ def__init__(self,api_token=None): globalapi_url self.api_token=api_token self.api_url=api_url defsend_message(self,message): headers={ "Content-Type":"application/x-www-form-urlencoded", "Authorization":"Bearer "+self.api_token } req=requests.post(self.api_url,headers=headers,data={"message":message}) logging.info("送信結果:"+str(req.status_code)) |
リクエストハンドラ、URLマッピングの追加
BfTool.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | classSendLine(RequestHandler): """ ティッカー情報の更新を停止 """ definitialize(self): logging.info("SendLine [initialize]") defpost(self): logging.info("SendLine [post]") line=LineNotifyApi(api_token="uJ7TsKVodBmPJ6gnjcwmm17Ugj7qS66a34yZmXHuSx6") line.send_message("Python からの通知です。 Hello Python!") app=tornado.web.Application([ (r"/",MainHandler), (r"/ws",SendWebSocket), (r"/balance",GetBalanceHandler), (r"/execution",GetExecutionHandler), (r"/childOrder",GetChildOrderHandler), (r"/sendOrder",SendChildOrderHandler), (r"/cancelOrder",CancelChildOrderHandler), (r"/startTicker",StartTicker), (r"/stopTicker",StopTicker), (r"/sendLine",SendLine) ], template_path=os.path.join(os.getcwd(),"templates"), static_path=os.path.join(os.getcwd(),"static"), js_path=os.path.join(os.getcwd(),"js"), ) |
ボタン押下時の処理を追加
script.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | /** * LINE送信 */ functionsendLine(){ $.ajax({ url:"http://localhost:8080/sendLine", type:"POST", success:function(jsonResponse){ console.log(jsonResponse); }, error:function(){ } }); } |
メッセージを送ってみる
ということで、いつも通りサーバーを起動し、追加した「LINE送信」ボタンをクリックします。
無事にメッセージが届きました。
まとめ
とりあえずメッセージの送信ができたので、次回はこの仕組みで何か便利なことが出来たらいいなと思います。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません