■Pachubeの使い方 (2011/8/8更新)
Pachubeは、蓄積したデータからグラフを生成して、ウェブページに自由な縮尺で張れたりするので、使ってみるとなかなか便利です。一般的にはいろいろな言語で用意されているラッパーライブラリを使うようですが、組み込みだとそうもいかないので、生ソケットを使ったサンプルコードを紹介します。Pachubeが受け入れるデータ形式は3種類(JSON, XML, CSV)ありますが、CSVが一番楽です。
ソケットの擬似コード:
## ソケットを生成してポート80番に接続
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((site,80))
## PUTメソッドでデータ形式は
CSV
## api_keyはデータを登録する際に必要なMaster API Key
sock.send("PUT http://api.pachube.com/v2/feeds/29765.csv HTTP/1.0\r\n")
sock.send("X-PachubeApiKey+: "+api_key+"\r\n")
sock.send("Content-length: " + "%d" % len(body_content))
sock.send("\r\n\r\n")
sock.send(body_content)
29765というのは今回我々が取得したアカウントのFeed番号で、ここはアカウント毎にそれぞれ異なる数値を指定します。
データを送る際は、「29765.csv」のように ID+形式 で末尾を修飾します。これでサーバ側がPUTされるデータのフォーマットを判断してるようです。
生ソケットを使う場合のポイントはContent-Lengthヘッダで、ここにメッセージボディ部のデータバイト数を指定しないとサーバからエラーが戻ります。逆にいうと、クライアント側のHTTPヘッダで必要なのはX-PachubeApiKeyとContent-LengthだけでOKです。Hostヘッダはなくても通りますが、もし HTTP/1.1 と名乗るなら付加する必要があるでしょう。
ボディ部のデータ形式は、CSVなら非常に簡単で
Stream ID, データ
と2パラメータをカンマ区切りで送るだけです。 |