開発者として、私は顎骨が私に持っている膨大な量のステップカウントと睡眠習慣のデータにアクセスしたいと思わずにはいられません。たくさんのデータがあります!そこで、Jawbone Up APIとノードを使用してこのデータを引き込む方法を検討し始めました。
Web全体でJawbone Up APIとノードを使用する方法の例を見つけましたが、それらはすべて非常に関与しており、いくつかの時代遅れのモジュール(Expressの古いバージョンなど)とともに多くの可動部品がありました。この記事では、ユーザーデータをデータベースに保存したり、アカウントを作成したり、ソーシャルログインを接続したりすることを心配することはありません。 Jawbone APIで認証し、ユーザーデータを返すためにノードサーバーを取得するために知っておくべきコアのことに焦点を当てます。 このデモのすべてのコードは、githubリポジトリで入手できます。キーテイクアウト
Jawbone Up APIを利用して、ユーザーデータストレージまたはアカウント管理の複雑さなしに、node.jsを使用してステップカウントや睡眠習慣などの広範なユーザーデータにアクセスします。
Jawbone開発者サイトにJawboneアプリを設定して、API統合に不可欠なクライアントIDやアプリシークレットなどの必要な資格情報を取得することから始めます。
ユーザー認証とデータ検索を安全に処理するために、node.jsにOAuth 2.0を備えたパスポートモジュールを実装してください。- Jawbone Up APIとのすべての通信がHTTPSを介して実施され、セキュリティプロトコルを満たし、データ傍受を避けてください。
- node.jsでEJSテンプレートを使用して、WebアプリケーションのJawbone Up APIから取得した睡眠データを動的に表示します。 Jawbone Up APIからより多くのデータ型を統合し、おそらく他のAPIと組み合わせて機能を強化することにより、アプリケーションを拡張する可能性を探ります。
- Jawboneアプリのセットアップ
- 最初に必要なのは、Jawboneアカウントの下に設定された新しいJawboneアプリです。これは、ユーザーがデータにアクセスすることを許可するアプリです。
- https://jawbone.com/up/developerにアクセスして、左下の「サインイン」リンクをクリックして、Jawboneサイトの開発者セクションにログインすることから始めます。既存のJawboneアカウントを使用してログインできるため、特定のJawbone開発者アカウントは必要ありません。
- ログインしたら、https://jawbone.com/up/developer/accountにアクセスするか、「アカウント」の下の左手メニューの「アカウントの管理」リンクをクリックします。 このページでは、開発者アカウントページに到達します。ここから、[アプリの作成]をクリックします。
- ロードするページに
- 名前 - アプリケーションの名前、「Jawbone Up Node Demo」を入力しました。
説明 - これは、ユーザーのUPアプリギャラリーに表示される短い説明です。-
長い説明 - これは、アプリギャラリーのアプリの詳細ページに表示されます。
- ロゴ - アプリケーション用のロゴをアップロードします。 「Select」についてのエラーを受け取った場合(私は知っていますが、それをフォローしてそのメッセージを受け取る少数の人にとっては理にかなっています)、ロゴの画像が大きすぎる可能性があります。
url - アプリのホームページ-
承認URL - ログインページが見つかるというURL。テストのために、https:// localhost:5000/login/jawboneに入力してください
- oauth Redirect uris - ユーザーが認証されたら、アプリケーションがリダイレクトを許可されていることをurl。デモでは、https:// localhost:5000。
に入力します
-
クリックしてアプリケーションを作成すると、アプリのリストを使用してページに向けられます。新しく作成されたアプリは、私のものに似ている必要があります:-
「クライアントID」と「アプリシークレット」に注意してください。これらは、Jawbone APIに接続するために必要なものです。
ノードアプリを起動します

最初に、基本的なExpressアプリを設定します。
その後、ejs(埋め込まれたJavaScript)が必要になります。これにより、JavaScriptをHTMLテンプレートに挿入できます。これを使用して、返されたHTML内にJavaScript変数を表示します。
Jawbone APIで認証し、アプリケーションにリダイレクトできるようにするために、JawboneはHTTPSを介してページにリダイレクトすることを要求します。これを行うには、HTTPSを含める必要があります
次に、FSを含めます。これにより、ファイルシステムを読み取ることができます。 HTTPSを有効にするために、これをサーバー証明書ファイルで読み取る必要があります。
<span>var express = require(‘express’), </span> app <span>= express(),</span>また、JSONリクエストを処理できるようにするには、Body-Parserも必要です。
Jawbone Up APIは、認証にOAUTH 2.0プロトコルを使用します。基本的に、これは、ユーザーがJawboneアカウントでサインインし、データにアクセスする許可を与えるために、このプロトコルを実行する必要があります。幸いなことに、NPMのPassportモジュールには、これをサポートするPassport-Oauthというモジュールが含まれています。アプリにパスポートをセットアップし、OAuth 2.0のように
ejs <span>= require('ejs'),</span>
その後、実行するポートを保存する自己説明変数があります。
https <span>= require('https'),</span>次に、Jawboneauth内のパスポートとOAuth 2.0の認証に必要なすべての値を保存します。これは、アプリを登録したときに以前に注目した「クライアントID」と「アプリの秘密」値を使用する瞬間です。
<span>var express = require(‘express’), </span> app <span>= express(),</span>
ここに、これらの値が何を意味するか、および/またはそれらがどこから来たのかの概要があります。
- ClientID - これは、Jawboneアプリにリストされている「クライアントID」です。
- ClientSecret - これはその下の「アプリの秘密」値です。 AutherizationUrl - これは、ユーザーがリダイレクトされるUP OAUTH 2.0認証ページの場所です。
- tokenurl - これは、アクセストークンを要求するために、HTTPSを呼び出す必要があるJawbone Up APIのURLです。このトークンは、Jawbone Up APIへの呼び出しに、データのリクエストを行うことが許可されていることを証明する必要があるものです。 Jawbone up APIでは、このトークンは1年間続くため、データベースに保存して、1年間ユーザーをJawboneアカウントに接続する前に、それらを再認証する必要があります。このチュートリアルでは、ユーザーなどを保存することを検討することはありませんが、これをさらにプッシュしたい場合は留意してください。 callbackurl - Jawboneがユーザーがデータへのアクセスを正常に提供すると、ユーザーがユーザーを誘導するURL。私たちにとっては、睡眠データを表示するページです。
- 定義する最後の変数は、HTTPSを使用してこのサーバーを実行できるようにするためにサーバーに提供する必要があるすべての詳細を含むssloptionsです。 HTTPSをセットアップする方法を説明する際に、この記事の後半でこれらのそれぞれを詳細に説明します。
- 次に、ノード開発者に馴染みのある基本的なノードアプリ機能を定義するいくつかの行を含めます。
- BodyParser - JSONオブジェクトを解析することを可能にします
EJS - EJSモジュールをテンプレートエンジンに割り当てます。
ビューフォルダー - ejsビューファイルがサーバー上の場所(この場合、 /viewsフォルダー)を定義します。Express内のパスポートを初期化するために、次の行を実行します。
ejs <span>= require('ejs'),</span>
- メモとして、永続的なログインセッションが必要な場合は、パスポートにセットアップすることがさらにあります。この場合、セッションをセットアップする必要があります。ただし、このチュートリアルでは、Jawbone Up APIからデータを削除する初期段階に焦点を当て、ログインセッションについて心配しません。
- Get Requests のセットアップ
- Jawbone Up APIのログイン画面にユーザーを向けるには、Jawboneログイン画面にリダイレクトするURLをサーバーに割り当てる必要があります。以下のコードは、この目的のために /login /jawboneのURLを割り当てます。このURLへの取得リクエストで、passport.authorize()に電話して、Jawbone Up Authorizationページを表示します。
<span>var express = require(‘express’), </span> app <span>= express(),</span>
上記で見ることができるように、要求している特定のアクセス許可の配列があります - ['Basic_read'、 'sleep_read']。私たちの場合、基本的なユーザーデータとスリープデータを求めています。ステップカウント、食事などへのアクセスを要求したい場合は、その配列に追加の許可リクエストを追加できます。利用可能なもののリストと、Jawbone Up Developer Authentication Documentationページでアクセスできるものを見ることができます。 また、jawboneアップ認証画面で認証に障害がある場合、ホームページにリダイレクトされます。パスポートモジュールでも成功したことを設定することができますが、Jawbone up APIで発見されましたが、このコードのさらに下のJawbonestrategyのコールバックURLを定義するため、必要ありません。
次に、睡眠データが表示されるというGETリクエストを設定します。これは、APIにユーザーデータにアクセスできるようにリダイレクトするように指示する場所です。この例では、 /sleepdata:です
ここでは、同じパスポート.authorize()関数があります。このページに到達するまでにユーザーがログインしていることを確認するためです。その場合、res.render( 'userdata'、req.account)を実行します。 Jawbone up APIがuserData.ejsテンプレートに返されたデータに渡されます(これはすぐに設定されます)。それらがログインされていない場合、それらはJawbone Up Authentication画面に向けられます。 次に、URLを設定して、ユーザーがログアウトでログアウトできるようにします。これにより、ログアウトしたらユーザーがホームページにリダイレクトされます。
ejs <span>= require('ejs'),</span>
最後に、ルーティングのために、誰かがホームページにアクセスしようとする場合、index.ejsテンプレートをロードするように設定します。に接続します
コードの最大の部分も最も重要です。パスポート「戦略」を設定して、パスポートに「Jawbone」を使用して承認するリクエストを処理する方法を伝える方法です。このように見えます:https <span>= require('https'),</span>
fs <span>= require('fs'),</span>
最初に、ファイルの開始時に定義したJawboneauthオブジェクトから、clientID、ClientIDECRET、AutherizationUrl、Tokenurl、Callbackurlを設定しました。これは、new jawbonestrategy()。
を使用して行われます次に、このデータを処理するコールバック関数があります。このコールバック関数でトークン値と完了した値を使用します。トークンは、APIへの呼び出しに含める必要があるJawbone Up APIアクセストークンです。完了は、データをアプリに返すコールバック関数です。
アクセストークンと、前に定義されたクライアントIDとSecretをオプションオブジェクト内のJawbone-Upモジュールに渡します。<span>var express = require(‘express’), </span> app <span>= express(),</span>
Jawbone-Upモジュールは、Jawbone Up APIエンドポイントにアクセスできるノードモジュールです。これらは、ユーザーデータを返すためにAPIに送信する呼び出しです(例:https://jawbone.com/nudge/api/v.1.1/users/@me/sleepsを取得します)。これらは、up.moves.get()やup.sleeps.getなどの関数です。この例では、sleeps.get()を使用して睡眠データを取得します。
up.sleeps.get()内部には、errとbodyの2つの変数があります。 APIからデータを受信することにエラーがある場合、ERR変数で返されるため、コールバックの開始時にテストします。 それ以外の場合は、ボディ変数のJSON文字列にデータを返します。ボディ変数には、そのように見える値のJSON文字列が含まれます:私たちが望むものはすべてデータ内です。 json.parse(body)を使用して上記の値をJavaScriptオブジェクトに解析し、データキー内の値をJawbonedataと呼ばれる変数に割り当てます:
ejs <span>= require('ejs'),</span>
次に、データ内の配列内の各アイテムを通過するループ用のループがあり、日付と睡眠時間をフォーマットしてから、テンプレートに戻して表示します。
https <span>= require('https'),</span>
ここで、日付を読み、文字列に変換してから、1日、月、年を自分でスライスします。 20150408の値として返されるため、最初の4桁、その後2桁、その後2桁、最後の2桁を1日にスライスします。次に、DD/mm/yyyyになるように配置します。米国の日付形式でフォーマットする場合は、月と日を切り替えることができます。fs <span>= require('fs'),</span>
その後、そのデータをパスポートのコールバック関数に返し、ユーザーData.ejsをレンダリングします。そのために、Jawbonedata変数をDONE関数に返します。 console.logもあります。これがログで表示されたときにログに表示されるように表示されます。bodyParser <span>= require('body-parser'),</span>
を使用します 前述したように、Jawboneのサービスではhttpsを実行する必要があるため、Jawbone Up APIを使用するには、httpsでサーバーを実行する必要があります。 CallBackurlがHTTPSに設定されていない場合、ログインしようとすると「無効なリダイレクト」エラーが表示されます。模範を取得するために、自己署名された証明書を使用します。ライブサイトでこれを行っている場合は、有効な証明書当局から適切な証明書を取得する必要があります。
server.jsでは、2つのSSLオプションを定義しています:passport <span>= require('passport'), </span><span>JawboneStrategy = require('passport-oauth').<span>OAuth2Strategy</span>,</span>
- キー - これは私たちのサーバーの秘密鍵です
- cert - これは私たちの自己署名証明書 です
サーバーの秘密鍵を生成
秘密キーを生成するには、OpenSSLツールキットを使用する必要があります。 Mac OSXとLinuxユーザーは、これをプリインストールしている必要があります。 Windowsユーザーの場合は、Cygwinをインストールし、「Packagesの選択」画面で「OpenSSL」を検索し、表示されるパッケージを選択できます。
端末を開き、サーバーのフォルダーに移動し、次のコマンドを実行することで、その秘密キーを生成できます。<span>var express = require(‘express’), </span> app <span>= express(),</span>
証明書署名リクエスト(CSR)を生成します
次に、CSRを生成する必要があります。これは通常、証明書当局に送られますが、私たちの場合、テスト目的で自分で署名します。 上記で作成した秘密鍵を使用してCSRを生成するには、次のコマンドを実行します。というファイルとしてCSRを受け取ります。
サーバーの秘密鍵を使用して署名された証明書を生成しますejs <span>= require('ejs'),</span>
そのコマンドはserver.crtファイルを生成する必要があります - これはあなたの証明書です。
証明書のリクエストを削除
物事を整頓したい人が証明書を自己署名したい人のために、私たちの証明書が署名されたときにserver.csrを削除することができます。
https readyhttps <span>= require('https'),</span>
秘密キーと証明書の準備ができており、ノードファイルで定義されているため、サーバーはHTTPSとして実行する準備ができています。次のコードは、httpsとssloptionsを使用してサーバーを起動します。
ejsファイル
このアプリのHTMLはすべて.EJSファイルにあるため、必要に応じてJavaScript変数を内部に含めることができます。これらのファイルはすべて /ビュー内です。 index.ejsは非常にシンプルで、[ /login /jawboneに移動するタイトル、指示、ログイン]ボタンを含む:userdata.ejsはアクションがある場所です。私たちが焦点を合わせることができる主なビットは私たちのテーブルです:
EJSの新しいものについては、JavaScriptをタグ内に埋め込みました。 アイテムをuserDataテンプレートに渡します。これは、(var i = 0; i
アクション中のアプリのようなforループを使用して反復します。 各日付とタイトルは、およびを使用してHTMLに挿入されます。 fs <span>= require('fs'),</span>
アプリを実行するには、端末に向かい、実行してください。
実行中は、http:// localhost:5000にアクセスすると、最初のページが表示されます。 bodyParser <span>= require('body-parser'),</span>
ログインボタンをクリックすると、http:// localhost:5000/login/jawboneに移動します。このページでは、Jawboneのログインの詳細を促します。これらの詳細を入力した場合、または既にJawboneサイトにログインしている場合は、ユーザーデータへのアクセスを要求するAUTHページに向けられます。 「同意」をクリックします:
[同意]をクリックすると、http:// localhost:5000/sleepdataページに戻る必要があります。
そして、「ログアウト」ボタンをクリックすると、ログアウトしてホームページにリダイレクトする必要があります。
結論
Jawbone Up APIに接続し、データをノードサーバーに返すことの基本の概要を完了します。
ここからの次の手順には、データベースを設定して将来の使用のためにデータを保存すること、アプリのユーザーアカウントの作成、UP APIから引き込むデータの量の拡大、表示方法の変更を含めることができます(おそらく追加の追加きれいなグラフ!)その他。このデータを他の任意の数のAPIと組み合わせて、いくつかの本当にきちんとしたアプリケーションの可能性は膨大です!-
パスポートのドキュメント
- ドキュメント
- ユーザーアカウントとmongodbを備えたアップとノードのデモ
- jawbone up apiをnode.js
- に接続することについてのよくある質問 Jawbone up APIとは何ですか、どのように機能しますか?
Jawbone Up APIは、開発者がJawbone Upデータと対話できるようにするJawboneが提供する一連のプログラミングインターフェイスです。これにより、ユーザーのアクティビティ、睡眠、食事、その他の健康関連データを含むJawbone Upプラットフォームからのデータの抽出が可能になります。 APIはRESTFULコールを使用し、JSONで応答がフォーマットされています。最初にJawboneの開発者サイトにアプリケーションを登録して、クライアントIDとクライアントの秘密を取得します。次に、node.jsアプリケーションで「Jawbone-up」NPMパッケージを使用できます。このパッケージは、Jawbone Up APIにリクエストを認証して作成する簡単な方法を提供します。 Fitbit API、Google Fit API、Apple HealthKitなどの代替品。これらのAPIは、ユーザーの健康とフィットネスのデータへのアクセスも提供し、開発者を支援するための広範なドキュメントがあります。
Jawboneとそのサービスにはどうなりましたか?
Jawboneは、かつて人気のあるFitnessトラッカー会社であったが、そのサービスを停止し、もはやビジネスではない。同社は、Jawbone Health Hubと呼ばれる医療サブスクリプションサービスに移行しました。ただし、Jawbone Up AppとAPIはサポートされなくなりました。
残念ながら、Jawbone Up APIを使用できますか?jawboneは操作を停止したため、Jawbone up APIはもう利用可能。このAPIを使用するアプリケーションは、予想どおりに機能しなくなります。健康とフィットネスのデータにアクセスするために代替APIに切り替えることをお勧めします。Jawbone Up APIからFitbit APIに移行するにはどうすればよいですか? 。まず、Fitbitの開発者サイトにアプリケーションを登録する必要があります。次に、Fitbit APIを使用して、ユーザーの健康とフィットネスデータにアクセスできます。 Fitbit APIは、アクティビティ、睡眠、食事のデータへのアクセスを含むJawbone Up APIと同様の機能を提供します。 node.jsは、ChromeのV8 JavaScriptエンジンに基づいて構築されたJavaScriptランタイムです。スケーラブルなネットワークアプリケーションの構築に使用されます。 node.jsは非ブロッキングであるため、効率的で軽量で、データ集約型のリアルタイムアプリケーションに最適です。 APIの効率と使いやすさのために、APIとの接続に一般的に使用されます。node.js?
以上がnode.jsを使用してJawbone Up APIに接続しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

Dreamweaver Mac版
ビジュアル Web 開発ツール
