問題タブ [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.
api - Jawbone UP API oAuth およびアクセス トークン
今日、Jawbone の UP API の調査を開始しましたが、認証プロセス全体ですべてがうまくいっているようです。問題は、アクセス トークンを取得すると、それは常に同じトークンであり、どのリクエストでも機能せず、refresh_token エンドポイントで変更できないことです。
oAuth のセットアップ:
これらはhttps://jawbone.com/auth/oauth2/auth
URL に添付されたパラメーターであり、Jawbone に送信され、期待どおりにプロンプトが表示されます。承認を受け入れると、URL にコードが含まれているため、期待どおり my-site.com に戻ります。次に、コードを次のように使用します
そして、これらのパラメーターをにアタッチしhttps://jawbone.com/auth/oauth2/token
、最終的に次のようなものでサーバーにキックバックします:
私access_token
がこのような応答を得ようとするとき
API から、これは毎回の応答です。
refresh_token
プライベート ブラウジング セッションであっても、トークンは変更されません。また、提供された適切な API 呼び出しを使用して正常に更新した場合でも、呼び出しは成功しますが、Jawbone は同じトークンを返します。Jawbone API コンソールを介して同じフローをテストすると、リクエスト ヘッダーの Bearer トークンがここで取得したものとは異なります。妻の Jawbone 資格情報でも同じプロセスを試みると、同じ access_token を取得することに注意してください。
java - JAWBONE API を呼び出す JSON 結果の問題
UP Band データを分析する Android アプリを開発しています。UP SDK for Android にある例を使用すると、現時点では傾向データを JSON オブジェクトとして取得できます。問題は、この JSON オブジェクトの形式が正しくないことです。実際、トレンドデータを次の方法で逆シリアル化しようとすると:
次のエラーが表示されます。
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: 行の期待値...
さらに、API 呼び出しの結果を調べると、次のようになります。
{meta={user_xid= MASKED, 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.58256649、m=8total1949。 , 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 =ヌル、性別=0.0、n_asleep_time=null}]、[2.0150424E7、{e_protein=null、体重=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=null, e_sodium=null, s_awake=null, s_asleep_time=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_sleep_time = null}]、[2.0150425E7、{e_protein = null、重量 = 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, n_awake=null, 7 ecarb3s3=86. 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=1919.6,2_total 2 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、goal_body_weight=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_sleep_time=null} ], [2.0150428E7, {e_タンパク質=null, 体重=78.0, 目標体重の意図=null, 体脂肪=null, m_距離=null, s_覚醒=null, 身長=1.72, m_lcat=null, 目標体重=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, s_duration=null, age=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 、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、m_steps=null、e_cholesterol=null、s_light=null、e_sat_fat=null、n_bedtime =ヌル、m_workout_time=ヌル、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、gender=0.0、age=69.8438356164、e_carbs=null、e_fiber=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= 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= 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}}}
前の JSON オブジェクトの主な問題は、キーの形式が整っていないことです。実際には、それらは "" の間の文字列でなければなりません。この問題を解決する方法を教えてください。どうもありがとうございました。[編集]
これは、Jawbone からデータを取得するために変更を開始したコールバック関数です。
};
java - Jawbone 応答から Gson オブジェクト モデルを作成する方法
Jawbone SDK を使用していますhttps://github.com/Jawbone/UPPlatform_Android_SDK
この応答を Gson https://jawbone.com/up/developer/endpoints/trendsに解析することに例えます
この応答の Gson オブジェクトを作成するにはどうすればよいですか?
javascript - Jawbone API OAuth access_token の node.js での処理 (エクスプレス & パスポート)
REST APIの Jawbone の OAuth2.0 認証に成功した人はいますか?
authorization_code
を取得するためににアクセスして送信する方法がわかりません( Jawbone API Authorization Documentationaccess_token
のステップ 4 & 5 )。後続の(AJAXスタイルの)呼び出しに再利用し、ユーザーに毎回再認証を求めることを避けたい.access_token
API の各呼び出し ( ) では、 (スクリーン ショット)get.sleeps
を取得するために、この再認証を含む認証プロセスの完全なラウンド トリップが必要です。authorization_token
Jawbone とPassportの両方のドキュメントは、この点であいまいです。
私のスタックには、node.js
、jawbone-up
NPM、express.js
およびpassport.js
. 有効なデータが返ってきたので、Jawbone の Passport Strategy は正しく機能しているようです。
jawbone-up
NPM は明示的にセッション ( access_token
) の維持を助けません。
access_token
質問: API 呼び出しで実際に OAUTH を使用するにはどうすればよいですか? 誰かがこれを行うためのコードを教えてもらえますか?
ありがとう
node.js - NPM Grant OAuth ミドルウェアの「invalid_redirect」エラー
Jawbone API で認証するために、このエレガントな外観のパッケージを使用しようとしています。しかし、私はこのエラーが発生し続けます -
これらのリダイレクト URI を使用するように Jawbone API サービスで「アプリ」を構成しました -
私の設定ファイルは次のようになります -
私は著者の 例に従って、このようなapp.jsを作成しようとしました-
私は noob-error を作成しており、おそらくドキュメントや例を読み間違えていると思います。誰かが私が誤って構成したことを指摘できますか?
node.js - node.jsとjawbone-up NPMを使用したOauth access_token
更新: 以下の Remus からのフィードバックに従います。
Web アプリケーションを正常に承認し、 and を取得できaccess_token
ますrefresh_token
。認証を受けるために素敵なGrant NPM (または本当に grant-express ですか?)を使用しています (著者Simeon Valichkovに感謝します)。
access_token
またはのような NPM を使用して、ベアラー トークンとして Jawbone API 呼び出しに渡すにはどうすればよいですjawbone-up
かPurest
?
質問#1 - でこの API 呼び出しを作成しexpress-bearer-token
、実際に Jawbone json データを取得する最も簡単な方法は何ですか?
ページに表示されているのは、Jawbone json の結果データではなく、トークン (長い文字列) です。
私の Grant 構成ファイルは次のようになり、トークンを保存するのに最適な場所のようです。
json - 「page_token」を使用した Jawbone API のページ分割された結果
Jawbone API は、結果セットごとに 10 個の json オブジェクトのページ分割された結果を返します。ページ分割された残りの結果をどのように取得しますか?
メソッドの APIドキュメントは、結果セットのオブジェクトに引数がsleeps
存在することを示しています。以下の私の出力にはこれがありません。さらに、FAQは、これが INT (おそらくエポック) タイムスタンプを取得することを示しています。page_token
next
page_token
- 2 番目: 「page_token」パラメータ: リクエストに「page_token」パラメータが含まれている場合、API はその page_token の前に完了したすべてのワークアウトを逆の順序で返します (「制限」またはデフォルトの 10 に制限されます)。page_token はタイムスタンプであり、page_token = CURRENT_TIMESTAMP を渡すと解釈される page_token=0 がリクエストに含まれている場合、つまり、すべてのワークアウトを (制限付きで) 与える特別なケースがあります。
API を使用して認証し、10 個の結果 (最初のページ分割されたページ) のセットを返すことができますが、page_token
.
ドキュメントを誤解していませんか?ドキュメントが古くなっている(間違っている)可能性がありますか?または、おそらく、私はこれを完全に誤解しており、node.js に恐ろしい JS を書いています ...
誰かが私をまっすぐにして、最初のページだけでなく、すべての結果を取得する方法を教えてもらえますか?
android - Android アプリと iOS アプリの両方で Jawbone UP 統合に同じクライアント ID を使用できますか?
Jawbone UP Api を使用する Android と iOS の両方でアプリを開発しています。iOS プラットフォームと Android プラットフォームの両方で同じクライアント ID とシークレットを使用できますか?