2016-06-18 1 views
1

特定の夜に睡眠グラフを取得しようとしていますが、https://jawbone.com/up/developer/endpoints/sleepsには、ユーザーの睡眠グラフの取得が含まれています。Jawbone UP APIには、使用のスリープグラフを取得する方法がありますか?

ただし、APIコンソールでは、スリープエンドポイントのメソッドは5つしかありません。スリープエンドポイントのメソッドはありません。私が見ることができる最も近いのはSpecific Sleep Eventです。以前のリンクに記載されているように、最後に '/ image'があるようにリクエストURLを変更しようとしましたが、それは単にsleep_xid値に含まれます。

方法があるかどうか、もしそうなら、私は知りたいと思います。

+0

UP APIと相互作用します。私はそれに取り組んでおり、まもなく完全な答えを出すでしょう。あなたは、コードや別のインターフェイスを使用して睡眠グラフをつかんでみましたか? – RAY

答えて

0

Apigee consoleにはstrict requirements around response headersがあり、Jawboneイメージのエンドポイントが違反するため、そのエンドポイントはそのコンソールから利用できません。

生のPNGデータを返すときに、これらのエンドポイントを持つことはあまり価値がありません。

代わりに、requests_oauthlibモジュールを使用したPythonコードのサンプルを示します。

まず、トークンを取得するにはOAuthハンドシェイクを実行する必要があります。

>>> import requests_oauthlib 
>>> up = requests_oauthlib.OAuth2Session(client_id=client_id, scope=['sleep_read'], redirect_uri=redirect_uri) 
>>> up.authorization_url('https://jawbone.com/auth/oauth2/auth')[0] 
u'https://jawbone.com/auth/oauth2/auth?response_type=code&client_id=-bry_vwGDwE&redirect_uri=http%3A%2F%2F127.0.0.1%3A8080%2Fauth&scope=sleep_read&state=LV2BAPq3dIz6eKu3xz420Zujb5f911 

のアクセスを許可した後、UPのAPIが戻ってアプリケーションにユーザーをリダイレクトします:ステップ1は、UP authorization_urlに行くあなたUPアカウントにログインし、アクセス権を付与することです。ステップ2は、トークンを取得するためにあなたに戻ってリダイレクトされているそのURLをコピーして、それを使用することです。この時点で

>>> token = up.fetch_token('https://jawbone.com/auth/oauth2/token', authorization_response=REDIRECTED_URL, client_secret=client_secret) 

を、OAuth2SessionオブジェクトupはAPIを照会する準備ができている(あなたも、このトークンに保存使用することができます後で別のOAuth2Sessionオブジェクトを作成します)。

したがって、スリープエンドポイントに問い合わせて、sleep_xidを取得しましょう。

>>> sleepr = up.get('https://jawbone.com/nudge/api/v.1.1/users/@me/sleeps') 
>>> sleep_xid = sleepr.json()['data']['items'][0]['xid'] 

今、私たちは特定の睡眠イベントのXIDを持っていることを、あなたはどの生PNGデータとしてAPIが戻り、そのグラフの画像を得ることができます。これはどのようにApigeeコンソールの問題です

>>> sleepimgr = up.get('https://jawbone.com/nudge/api/v.1.1/sleeps/{}/image'.format(sleep_xid)) 
>>> sleepimgr.text 
u'\u2030PNG\r\n... 
関連する問題