littleBits(cloudBits)のAPIをPythonから叩く
cloudBitsを使いました.
最初はIFTTTからいろんなトリガからcloudBitsを動作させましたが,ダメダメでした.理由は,色々なサービスを使えるのですがトリガの挙動が限られていたり,更にcloudBitsにその挙動をするまでとても時間がかかるのが問題でした.littleBitsはcloudAPIを提供しているのでIFTTTではなく直接そちらを叩くこともできます.
http://developers.littlebitscloud.cc/#output-voltage-on-device
詳細がは上のリンクにあるので分かる人はこれでどうぞ.
説明を読めば コマンドラインからcurlでAPIを利用する方法はわかります.
ここからこいつをpythonで叩く方法を書いていきます.まずhttp通信でpostするためにrequestsモジュールとjsonモジュールをインポートします.
インストールしていなければ$pip install requests jsonで準備しておきましょう.
DEVICE_IDとCLOUDBITS_ACCESS_TOKENはそれぞれlittleBits Cloud Controlのコンソールからsetting>Device IDとAccessTokenからコピペして置き換えてください.
次にアクセスするURLとヘッダーを用意します.
payloadに入れるpercentはcloudBitsからのアナログ出力値,duration_msは何秒間オンにするか[ms]で指定できます.
そしたら
rにpostが実行され返答されたコードが入っているので,printで出力してデバッグしてあげます.
が帰ってきていれば成功です.
404などのときはcloudBitsがネットに接続されていなかったり,Device IDやAccessTokenなどが間違っている可能性があります.
最後ににpythonでtwitterアカウントのツイートへのイイネを検出してcloudbBitsの出力をONにするサンプルを置いておきます.access tokenなどは各自apps.twitter.comでつくってください.
(※twitter userstreams apiは2018年夏に廃止されます.これがそのまま動くとはおもわないでください.幾つか追加で入れてるモジュールについても同様です.)