0

我是 Web 开发的新手,我吃的东西比我能咀嚼的还多。

到目前为止,我已经成功创建了一个网站来查询 cosm.com 的最新数据

现在我正在尝试使用 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/


更新 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

您可能需要将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 回答
2

@lebreeze 的建议是正确的。我让您的 JSFiddle 正常工作,以便它现在从 Cosm API 获取数据:

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 回答