2

我有一个 arduino 将传感器数据上传到 cosm.com。我在本地 Web 服务器上创建了一个简单的网页来查询 cosm.com API 并打印出值。

问题是,如果我没有在另一个选项卡中登录 cosm.com,我会收到此弹出窗口。

在此处输入图像描述

解决方案是将我的公钥传递给 cosm.com,但我在这里有点不知所措。

该文档提供了如何在 curl 中执行此操作的示例,而不是 javascript

curl --request GET --header "X-ApiKey: -Ux_JTwgP-8pje981acMa5811-mSAKxpR3VRUHRFQ3RBUT0g" https://api.cosm.com/v2/feeds/120687/datastreams/sensor_reading


如何将我的密钥传递到 url?:

function getJson() {
$.ajax({
    type:'GET',
    url:"https://api.cosm.com/v2/feeds/120687/datastreams/sensor_reading",

//This line isn't working
    data:"X-ApiKey: -Ux_JTwgP-8pje981acMa5811-mSAKxpR3VRUHRFQ3RBUT0g",

    success:function(feed) {

     var currentSensorValue = feed.current_value;
      $('#rawData').html( currentSensorValue );
    },
    dataType:'jsonp'
});
}


更新: 这一定是可能的,因为 hurl.it 能够查询 api http://www.hurl.it/hurls/75502ac851ebc7e195aa26c62718f58fecc4a341/47ad3b36639001c3a663e716ccdf3840352645f1

更新 2: 虽然我从来没有得到这个工作,但我确实找到了解决方法。Cosm 有自己的 javascript 库,可以满足我的需求。

http://cosm.github.com/cosm-js/ http://jsfiddle.net/spuder/nvxQ2/5/

4

2 回答 2

5

您需要将其作为标题发送,而不是作为查询字符串发送,所以试试这个:

function getJson() {
  $.ajax({
    type:'GET',
    url:"https://api.cosm.com/v2/feeds/120687/datastreams/sensor_reading",
    headers:{"X-ApiKey": "-Ux_JTwgP-8pje981acMa5811-mSAKxpR3VRUHRFQ3RBUT0g"},
    success:function(feed) {
     var currentSensorValue = feed.current_value;
      $('#rawData').html( currentSensorValue );
    },
    dataType:'jsonp'
  });
}
于 2013-03-31T17:05:47.593 回答
0

使用CosmJS应该更容易让它工作。它是官方支持的库,提供 Cosm API 的完整覆盖。

于 2013-04-01T13:26:37.570 回答