0

我有来自 Nest 帐户的产品密钥、产品 ID 和授权 URL,其中恒温器作为添加的设备。使用授权 URL 我生成了 8 个字符的 Pin 码,然后使用带有 POST 方法的访问令牌 URL 我得到如下响应

{"access_token":"c.KDYfQh2vrkS0w4k4BtGcJPysmzAzb3uXNz2myCMcEko5dUnrs5022kPd6cJnn5sg97hzXbm9YDzkDELXiLW58Frj6b2GyawbWLQMmm2x0eqmqa0j9VMpVQz2UXZ0mC2nDp7EmgVqsqgAXXA6","expires_in":315360000}

在邮递员。阅读 Nest Thermostat 信息的下一步应该是什么?请帮我

4

2 回答 2

0

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

curl -v -L \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer c.YOUR_TOKEN_HERE" \
  -X GET "https://developer-api.nest.com/"
于 2017-05-01T16:05:28.080 回答
0

首先,切勿在网络上发布您收到的任何令牌,它可能会被恶意使用。那个令牌只持续三天,所以你现在很好,但下次。

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

但是我们可以稍微详细一点。我不确定您是否尝试通过邮递员或实际代码接收信息,但这里有两种解释:

  1. 邮递员:向“ https://developer-api.nest.com ”发出 GET 请求,带有 2 个标头,如下所示:

内容类型 ---> 应用程序/json

授权--->承载c.KDYfQh2v.............

(不要忘记在实际的完全访问令牌之前添加单词“Bearer”和空格。)

  1. 在 Java 中:

令牌可以是 NestToken 对象或只是一个字符串:

字符串标记 = "c.KDYfQh2vrkS0w4k4BtGcJPysmzAzb3uXNz2myCMcEko5 ....."

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

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().
}
});

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

所有恒温器:

nest.addThermostatListener(new ThermostatListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<Thermostat> thermostats) {
    // Handle thermostat update...
  }
}
);

所有烟雾报警器:

 nest.addSmokeCOAlarmListener(new SmokeCOAlarmListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<SmokeCOAlarm> alarms) {
    // Handle smoke+co alarm update...
  } });

所有相机:

nest.addCameraListener(new CameraListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<Camera> cameras) {
    // Handle camera update...
  }
});

或收听所有结构的变化:

nest.addStructureListener(new StructureListener() {
  @Override
  public void onUpdate(@NonNull ArrayList<Structure> structures) {
    // Handle structure update...
  }
});

祝你好运。

于 2017-05-18T14:48:17.177 回答