node.jsを使用してJawbone Up APIに接続します
開発者として、私は顎骨が私に持っている膨大な量のステップカウントと睡眠習慣のデータにアクセスしたいと思わずにはいられません。たくさんのデータがあります!そこで、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>
Jawbone Up APIは、認証にOAUTH 2.0プロトコルを使用します。基本的に、これは、ユーザーがJawboneアカウントでサインインし、データにアクセスする許可を与えるために、このプロトコルを実行する必要があります。幸いなことに、NPMのPassportモジュールには、これをサポートするPassport-Oauthというモジュールが含まれています。アプリにパスポートをセットアップし、OAuth 2.0のように
ejs <span>= require('ejs'),</span>
その後、実行するポートを保存する自己説明変数があります。
https <span>= require('https'),</span>
<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を設定して、ユーザーがログアウトでログアウトできるようにします。これにより、ログアウトしたらユーザーがホームページにリダイレクトされます。
最後に、ルーティングのために、誰かがホームページにアクセスしようとする場合、index.ejsテンプレートをロードするように設定します。ejs <span>= require('ejs'),</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーに接続します
コードの最大の部分も最も重要です。パスポート「戦略」を設定して、パスポートに「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>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピー次に、データ内の配列内の各アイテムを通過するループ用のループがあり、日付と睡眠時間をフォーマットしてから、テンプレートに戻して表示します。
ここで、日付を読み、文字列に変換してから、1日、月、年を自分でスライスします。 20150408の値として返されるため、最初の4桁、その後2桁、その後2桁、最後の2桁を1日にスライスします。次に、DD/mm/yyyyになるように配置します。米国の日付形式でフォーマットする場合は、月と日を切り替えることができます。https <span>= require('https'),</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーその後、そのデータをパスポートのコールバック関数に返し、ユーザーData.ejsをレンダリングします。そのために、Jawbonedata変数をDONE関数に返します。 console.logもあります。これがログで表示されたときにログに表示されるように表示されます。fs <span>= require('fs'),</span>
ログイン後にコピーログイン後にコピーログイン後にコピーを使用します 前述したように、Jawboneのサービスではhttpsを実行する必要があるため、Jawbone Up APIを使用するには、httpsでサーバーを実行する必要があります。 CallBackurlがHTTPSに設定されていない場合、ログインしようとすると「無効なリダイレクト」エラーが表示されます。bodyParser <span>= require('body-parser'),</span>
ログイン後にコピーログイン後にコピー模範を取得するために、自己署名された証明書を使用します。ライブサイトでこれを行っている場合は、有効な証明書当局から適切な証明書を取得する必要があります。
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」を検索し、表示されるパッケージを選択できます。
端末を開き、サーバーのフォルダーに移動し、次のコマンドを実行することで、その秘密キーを生成できます。証明書署名リクエスト(CSR)<span>var express = require(‘express’), </span> app <span>= express(),</span>
ログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーログイン後にコピーを生成します
次に、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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
