【发布时间】:2014-07-25 03:13:10
【问题描述】:
我是 Nest 编程新手,我对如何通过 firebase API 从 Nest 获得授权感到困惑。
我想在 Android 中编写一个应用程序来访问设备信息。我已经在 Nest 注册了一个帐户,并从 Web 界面创建了一个客户端。我在客户端页面获得了授权 URL,并使用 chrome 扩展程序创建了 2 个虚拟设备。
来自https://developer.nest.com/documentation/authorization-overview,我知道我需要使用基于 PIN 的方法,所以我使用以下代码:
Firebase ref = new Firebase("https://home.nest.com/login/oauth2?client_id=CLIENT_ID&state=STATE");
Log.i(TAG, "getParams " + ref.getParams());
当我记录这些信息时,我得到了以下日志:
getParams {}
谁能帮助我通过 firebase API 从 Nest 获得授权?
更新
我研究了 RIT 提供的网站,但有些事情我仍然感到困惑。
我的客户页面有以下信息:
Client ID: b4bf4721-2***-4***-a***-c1a*********
Client secret: S578in************
Authorization URL: https://home.nest.com/login/oauth2?client_id=b4bf4721-2***-4***-a***-c1a*********&state=STATE
Access Token URL: https://api.home.nest.com/oauth2/access_token?code=AUTHORIZATION_CODE&client_id=b4bf4721-2***-4***-a***-c1a*********&client_secret=S578in************&grant_type=authorization_code
当我使用以下代码时:
Firebase ref = new Firebase(Authorization URL);
我希望它会返回 PIN 码,但它没有。
另外,来自https://developer.nest.com/documentation/how-to-auth,主题 3。用您的授权码交换访问令牌有一个命令:
"POST https://api.home.nest.com/oauth2/access_token?code=STRING&client_id=STRING&client_secret=STRING&grant_type=authorization_code"
有谁知道有没有firebase API可以实现这个命令?
【问题讨论】:
-
我认为你正在使用的 url 有问题。检查这些链接,希望这些对您有所帮助。 stackoverflow.com/questions/24601798/… & stackoverflow.com/questions/24615141/…
-
授权 URL 的帖子返回一个带有 Angular JS 绑定的页面,浏览器可以评估和绑定但我们的代码不能。如果您分析浏览器流量,您可以看到有一个对 home.nest.com/api/0.1/oauth2/clients{YOUR_CLIENT_ID}?locale=en-US 的 GET 请求和基本的 auth 标头。现在是获取基本身份验证头 b.4###.Mu################ 的关键