LoginSignup
2
0

More than 1 year has passed since last update.

スマートデバイスとクラウドサービスとの連携を容易にするiPaaSの活用② ~定期的にFitbit APIから情報を取得し、Databaseに保管してみた~

Last updated at Posted at 2022-09-06

はじめに

前回の記事ではAlexaからの要求をもとにiPaaSを経由してCloudantから情報を取得しました。今回は、iPaaSのスケジューラー機能でFitbitから定期的に情報を取得し、Object Storageに保管する処理を実施してみましたので紹介します。

アーキテクチャーの概要は以下のようになります。

image.png

0. 事前準備

まずは、FitbitとICOS(IBM Object Storage)の準備を進めていきます。

0.1 Fitbitのアプリケーション設定

FitbitのAPIに関するSwaggerファイルはこちらで提供されていますので、こちらを取得しておきます。

また、このAPIを呼び出す際には、アプリケーション登録が必要です。
developerサイトにログインし、以下の画面から設定していきます。

この中の「Redirect URL」については、App Connect on Cloudの設定を記入する必要がありますので、後続の手順で確認出来たら更新します。

image.png

0.2 IBM Cloud Object Storageの設定

IBM Cloudの無料枠でICOSインスタンスを作成します。

image.png

インスタンス作成後は、コンソールにアクセスできますので、事前にFitbitの情報を保管するバケットを作成します。

image.png

今回は、以下のような設定で作成しています。
また、外部からのアクセスになりますのでパブリック・アクセスを有効化しています。

image.png

接続のためのエンドポイントの確認と、資格情報を登録します。

image.png

image.png

1. App Connectの設定

今回は、スケジューラー起動を実装しますので、「Create a event-driven flow」を選択します。

image.png

処理は以下のような流れとなります。

  1. Scheduler でFlow起動
  2. APIでFitbitからデータ取得
  3. IBM Object Storageへオブジェクト作成

image.png

各処理は以下のように設定していきます。

1.1 SchedulerでFlow起動

ToolboxからSchedulerを登録します。
例えば、1日に1回フローを起動する場合は、以下のような設定となります。

image.png

1.2 APIでFitbitからデータ取得

フローからAPIを呼び出すためには、事前にカタログに外部APIを登録する必要があります。
以下のように左のカタログメニューからAPIを登録します。

image.png

次の画面で手順0.1で取得したSwaggerファイルをインポートします。
しかし、そのままではインポートしても接続ができなかったため、今回は「paths」の「/oauth2/token」、「/1.1/oauth2/introspect」を削除する必要がありました。現在(2022年9月)のApp Connectのバージョンでは、OAuthのパス設定が接続動作時に悪影響をもたらしていると推測されます。

image.png

App Connectのアカウントの登録画面では、手順0.1で登録したアプリケーションのClient IDを設定し、Fitbitのアプリケーションには、ここに提示されているRedirect URIを設定します。

image.png

APIやアカウントが無事に登録されたらフローの開発画面に戻ります。
以下のように登録したAPIとアカウントを利用することができます。
以下の例では、心拍数情報を取得するgetHeartByDatePeriodを使用して、date欄に本日の日付を設定し、期間は1日分取得しています。

image.png

1.3 IBM Object Storageへオブジェクト作成

今回は、ICOSへObjectを作成したいので、「Create Object」アプリケーションを追加します。
また、ICOSのアカウント登録は、手順0.2で設定した値をもとに以下のように設定します。

image.png

アカウントが登録できると、以下のようにBucketの情報が取得できます。
あとは、用途に合わせて、Object nameや、content、Content Typeを設定していきます。

image.png

以上で必要な設定は終了です。

2. 稼働確認

フローをスタートすると、スケジューラーで起動されます。
起動したことは、左メニューのログにも出力されます。

image.png

フローが正常に起動すると、ICOSのバケットにオブジェクトが作成されます。

image.png

以上です。

2
0
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
2
0