0

私は Web 開発に不慣れで、噛むことができないほど多くのことをしています。

これまでのところ、cosm.com で最新のデータを照会するための Web サイトの作成に成功しました。

現在、cosm JavaScript ライブラリを使用して、cosm.com フィードから最後の 10 個のデータ ポイントを配列に保存しようとしています。正しい構文を理解できず、ガイドとなる例が見つかりません。

cosm.feed.history( 12068, duration:'30seconds', callback(data) );
console.log(data);

http://jsfiddle.net/spuder/29cFT/12/

http://cosm.github.com/cosm-js/docs/


UPDATE 2013-4-14 @bjpirt のソリューションを実装した後、指定された期間内に「すべての」値が返されていないことに気付きました。リクエストに「interval:0」を追加することで解決しました。

  cosm.datastream.history( cosmFeed1, cosmDataStream1, {duration:'60seconds', interval:0}, getHistory );

http://jsfiddle.net/spuder/ft2MJ/1/

4

2 に答える 2

2

@lebreeze のアドバイスは正しいです。Cosm API からデータをフェッチするように、JSFiddle が機能するようになりました。

http://jsfiddle.net/nLt33/2/

動作させるにはいくつかの変更を加える必要がありましたが、いずれもエラーの原因となっていました。

  • フィード ID とデータストリーム ID が正しくありませんでした
  • コールバック関数がありませんでした
  • オプションが JavaScript オブジェクトにありませんでした

また、そのフィードは最近更新されていないようです。

現在正常に動作しているように見える更新されたコードは次のとおりです。

    //read only key
    cosm.setKey("-Ux_JTwgP-8pje981acMa5811-mSAKxpR3VRUHRFQ3RBUT0g");
    var cosmFeed = 120687;
    var cosmDataStream = "sensor_reading";

    $(document).ready( function()  {
        var success = function(data){
            for(var datapoint in data.datapoints){
                var dp = data.datapoints[datapoint];
                $('#stuff').append('<li>Value: ' + dp.value + ' At: ' + dp.at + '</li>');
            }
        }

        //Print out the last 10 readings or so
        cosm.datastream.history( cosmFeed, cosmDataStream, {duration:'1day'}, success ); 
    })

最後の x データポイントだけを取得するのは困難です (これは API で変更する必要があると思います)。通常は、特定の期間を要求します。

お役に立てれば。

于 2013-04-05T09:26:47.743 に答える
2

duration:'30seconds'json オプションをラップする必要がある場合があります{}

次のようなものを試してください:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script src="http://d23cj0cdvyoxg0.cloudfront.net/cosmjs-1.0.0.min.js"></script>
<script>..
  cosm.setKey( "APIKEY" );
  cosm.feed.history(40360, {duration:'30seconds'}, function(data){
    console.log(data);
    console.log(data.datastreams);
  });
</script>
于 2013-04-05T08:51:54.823 に答える