先日のセール、
に引き続き、技術書が半額セール中。
今回はなんだかマイナー本や、個人出版に近そうなタイトルが多い印象。
機械学習のDeepLearning周りの本がいくつかある、TensorFlowの本もあるが、内容は薄そうに見えなくもない。
先日のセール、
に引き続き、技術書が半額セール中。
今回はなんだかマイナー本や、個人出版に近そうなタイトルが多い印象。
機械学習のDeepLearning周りの本がいくつかある、TensorFlowの本もあるが、内容は薄そうに見えなくもない。
翔泳社の技術書が電子書籍で半額セールをしている。ITエンジニア向け。
電子書籍が世に出てきてから、なかなか値下げされず中古市場にも出回らなかった技術書が安く手に入るので嬉しい。
ただ、個人的には、積んである本がたくさんあるので、今回はよほど良さげな本がない限り見逃そうかと思う。
でも、AWS関連の本が一冊ぐらい欲しい。
だと簡単すぎるだろうか?
有名どころで世間的にも名著とされているのを何冊かあげておく。
前回の続き。
今回はLINE非公式APIをPythonから使って通知の取得を試みた。
LINE manual — LINE api doc 0.6.9 documentation
上記サイト参照。
Pythonで書かれていて、
pip install line
でインストールし、サンプルコード(Echo bot example)
from line import LineClient, LineGroup, LineContact try: client = LineClient("ID", "PASSWORD") #client = LineClient(authToken="AUTHTOKEN") except: print "Login Failed" while True: op_list = [] for op in client.longPoll(): op_list.append(op) for op in op_list: sender = op[0] receiver = op[1] message = op[2] msg = message.text receiver.sendMessage("[%s] %s" % (sender.name, msg))
のような形で使う。 ただし、これだけだとアクセストークンが取得できない。
GitHub - iwdmb/GetLineApiAuthToken: This will help you get LINE API authentication token(authToken).
上記のリポジトリをクローンしてきて、
python GetLineApiAuthToken
を実行すると、ユーザ名パスワードを聞いてくるので、LINEのメールアドレスとパスワードを入力する。 すると4桁の数字が表示されるので、これをスマホのLINEに入力する。 すると、AuthTokenが取得できる。
実は最初に挙げたpip install lineでインストールされるものでもトークン取得できそうなことが書いてあるのだが、実際にやってみると取得できない。
from line import LineClient, LineGroup, LineContact try: client = LineClient(authToken="AUTHTOKEN") #ここに取得したトークンをコピペ except: print "Login Failed" while True: op_list = [] for op in client.longPoll(): op_list.append(op) for op in op_list: sender = op[0] receiver = op[1] message = op[2] msg = message.text print "%s" % msg
LINEから、クライアント古いからアップデートしろよ、という通知が大量に飛んでくる。issueになっているのは見つけたが、解決法は書かれていない。
Receive message of update LINE app after login · Issue #71 · carpedm20/LINE · GitHub
また、トークンも怪しいとすぐに破棄されるように見える(非公式なのでしかたがないが)。たとえば、上のサンプルコードは、実際にはスリープを数秒間挟まないとすぐダメになった。
ググると、werkzeugのバグだ、古いから更新しろ、という書き込みばかり見つかるが、今回はそれではない。
こちらのissueに書いてある、thriftのバージョンの問題だった。
curve is not compatible with thrift 0.10.0 · Issue #88 · carpedm20/LINE · GitHub
一時的な対処としては、
pip install thrift==0.9.3
で直る。
非公式なのでしかたがないが、安定した動作はしなかった。あるいは、GetLineApiAuthTokenのリポジトリ内にあるLINEディレクトリのメソッドを使えばあるいは…?と思い実験してみたのだが、他の端末が使用していると認識されてしまい、スマホのLINEアカウントが強制ログアウトされてしまい、会話ログも消えてしまった。
これに懲りて、やはり非公式APIはやめて違う方法を検討することにする。