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...
出典
2016-06-24 22:39:19
RAY
UP APIと相互作用します。私はそれに取り組んでおり、まもなく完全な答えを出すでしょう。あなたは、コードや別のインターフェイスを使用して睡眠グラフをつかんでみましたか? – RAY