Autodesk Platform Services(APS)の公式ドキュメントでは、REST API エンドポイントの使用例に cURL を使った例を多用しています。
ドキュメントに記された cURL での記述例を使って、ほとんどのエンドポイントを実際にテストすることが出来ます。エンドポイントのテスト・評価には、ユーザー インターフェースを持つ Postman や Insomnia がよく利用されますが、cURL だとリクエスト ヘッダーやリクエスト ボディを同時に確認することが出来る、という利点があります。
ここでは、一部 Web ブラウザと Bash を使い、Get a 3-Legged Token with Authorization Code Grant の手順でアクセストークンを取得する手順をご紹介してみます。なお、この記事では APS の開発環境でご紹介した git for Windows に同梱されている Git Bash を利用しています。
事前準備
APS API を利用するアプリの登録とキーの取得 を参考に、APS ポータルでアプリを作成して Client ID と Client Secret を取得します。この際、Callback URL に http://localhost:8080/oauth/callback/ を指定してください。
Web ブラウザーを起動して、URL 欄に取得した Client ID、 Scope、Callback URL をクエリー パラメーターに指定して GET authorize エンドポイントを入力、オーソライゼーション コードを取得します。
https://developer.api.autodesk.com/authentication/v2/authorize?response_type=code&client_id=<CLIENT ID>&redirect_uri=http://localhost:8080/oauth/callback/&scope=data:read%20data:write
GET authorize エンドポイントの入力を完了すると、アクセス許可(認可)を得るためにユーザーのサインインを求めるページが表示されます。Autodesk ID(オートデスク アカウント)のユーザー名を入力してください。
続いて、入力した Autodesk ID のパスワードを求められます。適切なパスワードを入力してください。
サインインが完了すると、APS アプリ(ここでは Cur Test)が、サインインしたアカウント権限でクラウド リソースにアクセスしていいか、認可を求めるページに遷移します。認可する場合には、[許可] ボタンをクリックします。
認可が完了すると、Web ブラウザーの URL 欄に表示されている http://localhost:8080/oauth/callback/?code=<AUTHORIZATION CODE> の文字列から、クエリー パラメータの code=<AUTHORIZATION CODE> 値をクリップボードを介してどこかに保存しておきます。
次に、オーソライゼーション コードからアクセス トークンを取得する POST token エンドポイントを呼び出します。まず、リクエスト ヘッダーを準備するため、Client ID と Client Secret を :(コロン)で挟んだ値を Base64 エンコードします。Bash に次のように入力します。
echo -n '<CLIENT ID>:<CLIENT SECRET>' | base64
Base64 エンコードされた値が改行されているので、改行を削除したら、次の書式で cURL 構文を整え、Bash に入力します。
curl -v 'https://developer.api.autodesk.com/authentication/v2/token' \
-X 'POST' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Authorization: Basic <BASE64 ENCODED AUTHORIZATION VALUE>' \
-d 'grant_type=authorization_code' \
-d 'code=<AUTHORIZATION CODE>' \
-d 'redirect_uri=http://localhost:8080/oauth/callback/'
正しくプロセスが完了すると、アクセス トークン("access_token" 値)を含む JSON が返されます。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。