5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ヘルスケアAdvent Calendar 2018

Day 12

[Fitbit] SubscriptionsAPIを導入するにあたって気をつけたい事

Last updated at Posted at 2018-12-11

はじめに

弊社で運用しているサービス(あすけん)でFitbitのSubscriptionsAPIを利用した時に少々困ったことがあったので記事にしました(´・ω・`)

FitbitのSubscriptionsAPIとは

Fitbitのユーザーデータが変更されたときにサードパーティのアプリケーションに通知するAPIです。
ユーザーのデータを取得するためのポーリングまたはスケジューリングシステムを実装しなくても、アプリケーションはユーザーの最新のデータを保持できまるようになります。

subscriptionAPI-2ffca6a8184619f1be2d8d145439185a.png
( https://dev.fitbit.com/build/reference/web-api/subscriptions/ より引用 )

SubscriptionsAPIの流れ

  1. ユーザーがFitbitにデータを登録します。
  2. Fitbitはタイミングを見計らい、Endpoint URLにアクセスします。
  3. EndpointにはTypeで指定したデータがPOSTされます。
  4. データをパースし、fitbitからデータを取得します。

少々困ったこと

アクセスが死ぬほど多い

ユーザーデータが更新され、すぐにEndpointが叩かれるため登録人数によってはサーバーへの負荷がエライ事になります。
弊社では、一旦SQS(メッセージキュー)に保管して負荷分散するようにしました(´・ω・`)

Endpoint URLが一定期間アクセスできなかった場合、SubscriptionsAPIが無効になる

無効に切り替わったぞ通知は送られてきます。
その場合管理画面で有効に変更するだけで良いのですが
停止中のデータの更新方法・復旧手順を考えてから導入した方が良いです(´・ω・`)

Fitbit側がTLS+SNIに対応していない

CloudFrontを使っている方は要注意。
ELBで対応するなどした方がいいでしょう(´・ω・`)

まとめ

弊社サービスでは、カロリー計算や運動アドバイスを随時計算するため必要でしたが
サービス内容によってはSubscriptionsAPIを導入する必要も特にはないかと思います。
データを取得するAPIだけの運用でも良いと思うのでご参考になれば幸いです。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?