LoginSignup
1

More than 3 years have passed since last update.

posted at

updated at

Organization

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

はじめに

弊社で運用しているサービス(あすけん)で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だけの運用でも良いと思うのでご参考になれば幸いです。

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
What you can do with signing up
1