首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取Nest恒温器信息

如何读取Nest恒温器信息
EN

Stack Overflow用户
提问于 2017-02-20 20:35:12
回答 2查看 296关注 0票数 0

我有产品秘密,产品id和授权网址从Nest帐户与恒温器作为附加设备。使用授权URL,我已经生成了8个字符的Pin代码,然后使用带有POST方法的访问令牌URL,我得到的响应如下

代码语言:javascript
运行
复制
{"access_token":"c.KDYfQh2vrkS0w4k4BtGcJPysmzAzb3uXNz2myCMcEko5dUnrs5022kPd6cJnn5sg97hzXbm9YDzkDELXiLW58Frj6b2GyawbWLQMmm2x0eqmqa0j9VMpVQz2UXZ0mC2nDp7EmgVqsqgAXXA6","expires_in":315360000}

在邮递员。要读取Nest恒温器信息,下一步应该做什么?请帮帮我

EN

回答 2

Stack Overflow用户

发布于 2017-05-02 00:05:28

要一次性获取Nest温控器信息,您需要使用以下标头和url发出get请求:

代码语言:javascript
运行
复制
curl -v -L \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer c.YOUR_TOKEN_HERE" \
  -X GET "https://developer-api.nest.com/"
票数 0
EN

Stack Overflow用户

发布于 2017-05-18 22:48:17

首先,千万不要在网上发布任何你收到的令牌,它可能会被恶意使用。这个代金券只有三天的有效期,所以你现在已经很好了,但下次可以使用。

最简单的方法是按照nest labs github帐户中的示例进行操作:https://github.com/nestlabs/android-sdk

但我们可以详细介绍一下。我不确定你是否试图通过邮递员或实际代码接收信息,但这里有两种解释:

  1. 邮递员:向"https://developer-api.nest.com“发送GET请求,2个头如下:

Content-Type -> application/json

授权->持有者c.KDYfQh2v.............

(不要忘了在实际的完全访问令牌之前添加带空格的单词“持有者”。)

Java中的

标记可以是NestToken对象,也可以只是一个字符串:

String token = "c.KDYfQh2vrkS0w4k4BtGcJPysmzAzb3uXNz2myCMcEko5.....“

然后调用此函数进行连接:

代码语言:javascript
运行
复制
nest.authWithToken(token, new NestListener.AuthListener() {
@Override
public void onAuthSuccess() {

    // Handle success here. Start pulling from Nest API.
}

@Override
public void onAuthFailure(NestException e) {

    // Handle exceptions here.
}

@Override
public void onAuthRevoked() {

    // Your previously authenticated connection has become unauthenticated.
    // Recommendation: Relaunch an auth flow with nest.launchAuthFlow().
}
});

最后,选择你想听的,并调用正确的函数:

所有恒温器:

代码语言:javascript
运行
复制
nest.addThermostatListener(new ThermostatListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<Thermostat> thermostats) {
    // Handle thermostat update...
  }
}
);

所有烟雾报警器:

代码语言:javascript
运行
复制
 nest.addSmokeCOAlarmListener(new SmokeCOAlarmListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<SmokeCOAlarm> alarms) {
    // Handle smoke+co alarm update...
  } });

所有摄影机:

代码语言:javascript
运行
复制
nest.addCameraListener(new CameraListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<Camera> cameras) {
    // Handle camera update...
  }
});

对所有结构进行或侦听更改:

代码语言:javascript
运行
复制
nest.addStructureListener(new StructureListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<Structure> structures) {
    // Handle structure update...
  }
});

祝好运。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42344775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档