彰久(11)24この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。OAuth2こんにちは、事業開発部の大矢です。fitbitという活動量計、ご存知でしょうか。私はfitbitを日々使っていまして、1日の歩数や睡眠時間などを確認しています。fitbitにはAPIがあり、その認可方式としてOAuth2を採用しています。ドキュメントを見たところ、APIを叩くためには、それなりにOAuth2を理解していることが求められている気がします。grantのフローについて学んでいきたいと思います。2017にて弊社都元のすばらしい講演でOAuth2を学んだことです。grantを選択できます。grantを使用します。WebアプリケーションのサーバーサイドをClientとして想定したフローです。以下にシーケンス概要を示します。図中の()の数字は、以降の説明の該当箇所を表します。アプリケーションの登録まず、fitbitのサイトでアプリケーションを登録します。いえ、今回はアプリケーション自体は作りません。Secretを得るために行います。以下のように入力し、Registerボタンを押下します。Secretが表示されます。これを覚えておきます。grantのフローにそって説明していきます。Authorize各入力欄に以下のように入力します。Scopesアクセスしたい機能をONにする。すると、以下のようなURLが自動生成されます。grantでは"code"を指定する。IDredirect_uriWebアプリケーションがリダイレクトを受け取るURL。scopefitbitでは対象とするデータの種類になっている。expires_in有効期限このURLをブラウザで実行すると、fitbitの認証画面が表示され、認証が成功すると、認可画面が表示されます。これはフローの(1)の部分にあたります。許可すると(フローの(2))、ブラウザはredirect_uriで指定したところへリダイレクトしようとします。このURLは存在しないので、エラーになります。code)はアドレスバーに表示されているので、この値を覚えておきます。codeが渡される、といった動作を想定します。codeを入力します。入力する際の注意点として、末尾の#_=_は除去します。token取得のcurlコマンドが表示されます。Basicclient_idとsecretをbase64エンコードしたもの。grantでは"authorization_code"を指定する。redirect_uriWebアプリケーションがリダイレクトを受け取るURL。token取得のcurlコマンドを実行します(フローの(4))。すると以下のようなレスポンスが得られます。tokenが表示されます。Tokenの部分は、上で設定された値をそのまま使用します。URLの部分に、使用したいAPIを入力します。すると、APIを呼び出すcurlコマンドが表示されます。ここではactivitiesのAPIで、2017年1月の毎日の歩数を取得するようにしてみました。APIの仕様はswaggerで提供されています。これを実行すると、APIを呼び出すことができました。(フローの(6))どうやら1月3日はずっと寝ていたようです。...チュートリアルは以上となります。APIを呼び出せるようになり、また同時にOAuth2について理解を深めることができました。