问题标签 [jawbone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1060 浏览

api - Jawbone UP API oAuth 和访问令牌

我今天开始深入研究 Jawbone 的 UP API,在整个身份验证过程中一切似乎都很好。问题是,一旦我得到一个访问令牌,它总是相同的令牌,它在我的任何请求中都不起作用,我无法使用 refresh_token 端点更改它。

oAuth 设置:

这些是附加到https://jawbone.com/auth/oauth2/authURL 的参数,我被发送到 Jawbone 并按预期提示。当我接受授权时,我会使用 URL 中的代码按预期返回 my-site.com。然后我像这样使用代码

并将这些参数附加到https://jawbone.com/auth/oauth2/token并最终返回到我的服务器,类似于:

当我access_token过去尝试得到这样的回应时

从 API 来看,这是每次的响应:

令牌永远不会改变,即使在私人浏览会话中,即使我使用提供refresh_token的和正确的 API 调用成功刷新 - 调用成功,但 Jawbone 给了我相同的令牌。如果我通过 Jawbone API 控制台测试相同的流程,请求标头中的 Bearer 令牌与我在这里得到的不同。请注意,当我使用我妻子的 Jawbone 凭据尝试相同的过程时,我也会得到相同的 access_token。

0 投票
1 回答
346 浏览

java - 调用 JAWBONE API 的 JSON 结果中的问题

我正在开发一个 Android 应用程序来分析 UP Band 数据。使用 UP SDK for Android 中给出的示例,目前我可以将趋势数据作为 JSON 对象获取。问题是这个 JSON 对象格式不正确。事实上,当我尝试反序列化趋势数据时:

我收到以下错误:

com.google.gson.JsonSyntaxException:com.google.gson.stream.MalformedJsonException:行中的预期值...

此外,检查 API 调用的结果,我得到:

{meta={user_xid=屏蔽, message=OK, code=200.0, time=1.430319261E9}, data={earliest=2.0130408E7, data=[[2.0150423E7, {e_protein=null, weight=78.0, goal_body_weight_intent=null, body_fat=null, m_distance=8073.0 , s_awakenings=null, height=1.72, m_lcat=1336.0, goal_body_weight=null, s_quality=null, m_steps=10760.0, e_cholesterol=null, s_light=null, e_sat_fat=null, n_bedtime=null, m_workout_time=0.0, e_calcium=null, s_bedtime =null,n_awakenings=null,n_light=null,s_awake_time=null,pal=null,n_duration=null,m_lcit=9660.0,m_active_time=5717.0,e_unsat_fat=null,m_calories=532.710151311,e_calories=null,bmr=1426.58256449,m_total_18calories=1426.58256449,m_total_18calories= , n_sound=null, e_sugar=null, e_sodium=null, s_awake=null, s_asleep_time=null, s_duration=null, n_awake=null, age=69.8273972603, e_carbs=null, e_fiber=null, s_sound=null, n_quality=null, n_awake_time =null,性别=0.0,n_asleep_time=null}], [2.0150424E7, {e_protein=null, weight=78.0, goal_body_weight_intent=null, body_fat=null, m_distance=9641.0, s_awakenings=null, height=1.72, m_lcat=1145.0, goal_body_weight=null, s_quality=null , m_steps=12657.0, e_cholesterol=null, s_light=null, e_sat_fat=null, n_bedtime=null, m_workout_time=0.0, e_calcium=null, s_bedtime=null, n_awakenings=null, n_light=null, s_awake_time=null, pal=null, n_duration =null, m_lcit=11460.0, m_active_time=6508.0, e_unsat_fat=null, m_calories=632.988689047, e_calories=null, bmr=1412.57952142, m_total_calories=2045.56821047, n_sound=null, e_sugar_time=null, e_sodium_asleep_ake=null, ,s_duration=null,n_awake=null,age=69.8301369863,e_carbs=null,e_fiber=null,s_sound=null,n_quality=null,n_awake_time=null,gender=0.0,n_asleep_time=null}],[2.0150425E7,{e_protein=空,重量=78。0,goal_body_weight_intent=null,body_fat=null,m_distance=21643.0,s_awakenings=null,height=1.72,m_lcat=2455.0,goal_body_weight=null,s_quality=null,e_calories=null,e_cholesterol=null,s_light=null,e_sat_fat=null, n_bedtime=null, m_workout_time=0.0, e_calcium=null, s_bedtime=null, n_awakenings=null, n_light=null, s_awake_time=null, s_sound=null, pal=null, n_duration=null, m_lcit=1860.0, m_active_time=14625.0, e_unsat_fat= null, m_calories=1422.11015205, bmr=1269.04654879, m_total_calories=2691.15670084, n_sound=null, s_asleep_time=null, e_sodium=null, s_awake=null, e_sugar=null, s_duration=null, n_awake=null, age=69.8328,76 e_fiber=null,m_steps=28322.0,n_quality=null,n_awake_time=null,gender=0.0,n_asleep_time=null}],[2.0150426E7,{e_protein=null,weight=78.0,goal_body_weight_intent=null,body_fat=null,m_distance=1572.0, s_awakenings=null, height=1.72, m_lcat=265.0, goal_body_weight=null, s_quality=null, m_steps=2116.0, e_cholesterol=null, s_light=null, e_sat_fat=null, n_bedtime=null, m_workout_time=0.0, e_calcium= null, s_bedtime=null, n_awakenings=null, n_light=null, e_calories=null, pal=null, n_duration=null, m_lcit=6360.0, s_awake_time=null, e_unsat_fat=null, m_calories=104.843981181, bmr=1507.45521348, m_total_calories=1612. n_sound=null, s_asleep_time=null, e_sodium=null, s_awake=null, e_sugar=null, s_duration=null, n_awake=null, age=69.8356164384, e_carbs=null, e_fiber=null, s_sound=null, n_quality=null, n_awake_time= null,gender=0.0,n_asleep_time=null,m_active_time=1140.0}],[2.0150427E7,{e_protein=null,weight=78.0,goal_body_weight_intent=null,body_fat=null,m_distance=4334.0,s_awakenings=0.0,height=1.72,m_lcat =1091.0,目标体重=null, s_quality=0.0, m_steps=5726.0, e_cholesterol=null, s_light=0.0, e_sat_fat=null, n_bedtime=null, m_workout_time=0.0, e_calcium=null, s_bedtime=-5400.0, n_awakenings=null, n_light=null, s_awake_time =17100.0, pal=null, n_duration=null, m_lcit=4320.0, m_active_time=2978.0, e_unsat_fat=null, m_calories=283.00944155, e_calories=null, bmr=1474.94024527, m_total_calories=1757.94968682, n_sound=null, s_asleep_time=-5400.0, e_sodium= null,s_awake=0.0,e_sugar=null,s_duration=22500.0,n_awake=null,age=69.8383561644,e_carbs=null,e_fiber=null,s_sound=0.0,n_quality=null,n_awake_time=null,gender=0.0,n_asleep_time=null} ], [2.0150428E7, {e_protein=null, weight=78.0, goal_body_weight_intent=null, body_fat=null, m_distance=null, s_awakenings=null, height=1.72, m_lcat=null, goal_body_weight=null, s_quality=null, e_calories=null ,e_cholesterol=null, s_light=null, e_sat_fat=null, n_bedtime=null, m_workout_time=null, e_calcium=null, s_bedtime=null, n_awakenings=null, n_light=null, m_steps=null, pal=null, n_duration=null, m_lcit= null, s_awake_time=null, e_unsat_fat=null, m_calories=null, bmr=1527.57418082, m_total_calories=1527.57418082, n_sound=null, s_asleep_time=null, e_sodium=null, s_awake=null, e_sugar=null, s_duration=null, n_awake=null,年龄=69.8410958904,e_carbs=null,e_fiber=null,s_sound=null,n_quality=null,n_awake_time=null,gender=0.0,n_asleep_time=null,m_active_time=null}],[2.0150429E7,{e_protein=null,weight=78.0 , 目标体重=空, 身体脂肪=空, m_距离=空, s_awakenings=空, 身高=1.72, m_lcat=空, 目标体重=空, s_quality=空, m_steps=空, e_cholesterol=空, s_light=空, e_sat_fat=空, n_bedtime =null,m_workout_time=null,e_calcium=null, s_bedtime=null, n_awakenings=null, n_light=null, s_awake_time=null, pal=null, n_duration=null, m_lcit=null, m_active_time=null, e_unsat_fat=null, m_calories=null, e_calories=null, bmr= 1527.55567397, m_total_calories=503.191690242, n_sound=null, s_asleep_time=null, e_sodium=null, s_awake=null, e_sugar=null, s_duration=null, 性别=0.0, age=69.8438356164, e_carbs=null, e_fiber=null, s_sound=null, n_quality=null, n_awake_time=null, n_awake=null, n_asleep_time=null}]], links={next=/nudge/api/v.1.1/users/ymQeH-UUAU8hs54Ad7Mxjw/trends/?end_date=20150422&bucket_size=d&num_buckets=7} }}n_sound=null,s_asleep_time=null,e_sodium=null,s_awake=null,e_sugar=null,s_duration=null,gender=0.0,age=69.8438356164,e_carbs=null,e_fiber=null,s_sound=null,n_quality=null,n_awake_time=空,n_awake=null,n_asleep_time=null}]],链接={next=/nudge/api/v.1.1/users/ymQeH-UUAU8hs54Ad7Mxjw/trends/?end_date=20150422&bucket_size=d&num_buckets=7}}}n_sound=null,s_asleep_time=null,e_sodium=null,s_awake=null,e_sugar=null,s_duration=null,gender=0.0,age=69.8438356164,e_carbs=null,e_fiber=null,s_sound=null,n_quality=null,n_awake_time=空,n_awake=null,n_asleep_time=null}]],链接={next=/nudge/api/v.1.1/users/ymQeH-UUAU8hs54Ad7Mxjw/trends/?end_date=20150422&bucket_size=d&num_buckets=7}}}

前一个 JSON 对象的主要问题是键的格式不正确。实际上它们应该是“”之间的字符串。你能给我一些关于如何解决这个问题的指示吗?非常感谢你的帮助。[编辑]

这是我开始修改以从 Jawbone 获取数据的回调函数:

};

0 投票
0 回答
294 浏览

android - Jawbone UP Android OAuth redirect_uri:ERR_UNKNOWN_URL_SCHEME

将 Android 健身应用与 Jawbone UP REST API 集成。

我对 OAuth 不太熟悉,所以如果我的问题是基本的,请原谅我。

Jawbone 的文档指出,redirect_uri 可以指定为:

上平台://重定向

这基于以下 SDK:

https://github.com/Jawbone/UPPlatform_Android_SDK

从该链接中,文档指出:

“获取您的 OAuth 凭据

使用您的 Jawbone UP 帐户登录 Jawbone UP 开发者门户。如果您没有帐户,您可以通过访问jawbone.com/start/signup 来创建一个。按“管理帐户”注册您的组织。按照说明创建新应用程序并获取您将用于向 UP 平台进行身份验证的 OAuth 客户端 ID 和应用程序密钥。在“OAuth 重定向 URI”字段中指定您的自定义重定向 URI,或使用默认值 up-platform://redirect。请注意,对于 Android SDK,此 url 是多余的,我们永远不会离开应用程序,因此不需要重定向到它。但是 OAuth 规范需要它。此外,Jawbone 也使用此框架进行基于 Web 的 OAuth 身份验证,因此我们将其留在这里。可以说这里输入的任何非空 uri 都应该与 app 中使用的相同。”

在 Android 中运行时,sdk 会将您踢出到 web 视图,此时您使用 Jawbone 帐户登录

我“似乎”成功登录,但在我接受权限后立即收到以下内容:

“网页无法显示”

up-platform://redirect?(一堆看似编码的文本)处的网页无法加载,因为:

净:ERROR_UNKNOWN_URL_SCHEME

我会很感激这里的任何方向。我不知道从哪里开始看。

谢谢

0 投票
1 回答
155 浏览

python - 自动输入 OAuth 的用户名和密码

我正在运行一个研究项目,我们在其中创建参与者的 Jawbone 帐户。我正在编写一个程序来捕获所有参与者的步数。我想知道如何在不弹出以下页面的情况下提供用户名和密码。

本质上,我想简化流程,以便无需任何用户手动输入即可获得 oauth 访问令牌。我正在用 Python(Google App Engine)编写所有这些内容。

在此处输入图像描述

0 投票
2 回答
85 浏览

java - 如何从 Jawbone 响应创建 Gson 对象模型

我正在使用 Jawbone SDK https://github.com/Jawbone/UPPlatform_Android_SDK

并希望将此响应解析为 Gson https://jawbone.com/up/developer/endpoints/trends

如何为此响应创建 Gson 对象?

0 投票
2 回答
439 浏览

javascript - 使用 node.js 处理 Jawbone API OAuth access_token(快递和护照)

有没有人为他们的 REST API成功导航Jawbone 的 OAuth2.0 身份验证?

我无法弄清楚如何访问和发送authorization_code以获取( Jawbone API 授权文档access_token中的步骤 4 和 5 )。我想重用后续(AJAX 样式)调用,并避免每次都要求用户重新授权。access_token

API (get.sleeps_ authorization_tokenJawbone 和Passport文档在这一点上都含糊其辞。

在此处输入图像描述

node.js我的堆栈涉及jawbone-upNPM和. 当我取回有效数据时,Jawbone 的 Passport Strategy 似乎工作正常。express.jspassport.js

jawbone-upNPM 明确不帮助维护会话 ( ),说“这个access_token库不帮助通过 OAuth 获取 access_token...”

问题:我如何access_token在 API 调用中实际使用 OAUTH?有人可以给我看一些代码来做到这一点吗?

谢谢

0 投票
1 回答
192 浏览

node.js - NPM 授予 OAuth 中间件“invalid_redirect”错误

我一直在尝试使用这个外观优雅的包来通过 Jawbone API 进行身份验证。但我不断收到这个错误 -

在此处输入图像描述

我已经使用 Jawbone API 服务配置了我的“应用程序”以使用这些重定向 URI -

在此处输入图像描述

我的配置文件看起来像这样 -

我尝试按照作者的 示例来生成这样的 app.js -

我假设我犯了一个菜鸟错误,并且可能误读了文档或示例。有人可以指出我配置错误的地方吗?

0 投票
1 回答
222 浏览

node.js - Oauth access_token 与 node.js 和颚骨向上 NPM

更新:以下来自 Remus 的反馈。

我可以成功授权我的 Web 应用程序并取回一个access_tokenrefresh_token. 我正在使用不错的Grant NPM(或者这真的是 grant-express?)来获得身份验证(感谢作者Simeon Valichkov)。

如何使用access_tokenNPMjawbone-upPurest

问题#1 - 使用 a 创建此 API 调用express-bearer-token并实际取回我的 Jawbone json 数据的最简单方法是什么?

我在页面上看到的是令牌(一​​个 looong 字符串)而不是 Jawbone json 结果数据。

我的 Grant 配置文件看起来像这样,并且似乎是存储我的令牌的明显位置。

0 投票
1 回答
133 浏览

json - 使用“page_token”的 Jawbone API 分页结果

Jawbone API 返回每个结果集 10 个 json 对象的分页结果。如何获得其余的分页结果?

该方法的 API文档表明结果集的对象中sleeps存在一个page_token参数。next我下面的输出缺少这个。此外,FAQ表明这page_token需要一个 INT(可能是纪元)时间戳。

  • 第二个:“page_token”参数:如果请求包含“page_token”参数,API 将返回在该 page_token 之前完成的所有锻炼,以相反的顺序(以“limit”或默认值 10 为上限)。page_token 是一个时间戳,并且有一个特殊情况,当请求带有 page_token=0 时,这被解释为传递 page_token = CURRENT_TIMESTAMP,即给予所有锻炼(有限制)

我能够使用 API 进行身份验证并返回一组 10 个结果(第一个分页页面)......但没有page_token

我误解了文档吗?可能是文档已过时(错误)吗?或者更有可能,我完全误解了这一点,并为我的 node.js 编写了可怕的 JS ......

有人可以直截了当地告诉我如何检索所有结果,而不仅仅是第一页吗?

0 投票
1 回答
88 浏览

android - 我可以为 Android 和 ios 应用程序的 Jawbone UP 集成使用相同的客户端 ID 吗?

我正在使用 Jawbone UP Api 在 android 和 ios 中开发一个应用程序。我可以为 ios 和 android 平台使用相同的客户端 ID 和密码吗?