新 Node.js SDK と VS Code で 2-legged アクセストークンを取得 の例に続いて、3-legged 認証フローでのアクセストークン取得を Windows の VS Code 上でテストする例をご紹介したいと思います。
新 Node.js SDK のインストール
新しい Node.js SDK のインストールは、基本的に 新 Node.js SDK と VS Code で 2-legged アクセストークンを取得 と同じです。 https://www.npmjs.com/~aps.sdk(GiiHub リポジトリ:https://github.com/autodesk-platform-services/aps-sdk-node)から Node.js パッケージを次の手順でインストールをおこないます。
- MKDIR コマンドで aps-sdk-node フォルダを作成します。(フォルダ名は任意です。)
- CD コマンドで aps-sdk-node フォルダに移動します。
- npm install --save @aps_sdk/autodesk-sdkmanager @aps_sdk/authentication と入力して、aps-sdk-node フォルダ下に SDK Manager と Authentication API パッケージをインストールします。
- 3-legged 認証フローでは、コールバックを処理するために express パッケージを使った ルーティング をおこないます。コマンドプロンプトに npm install express と入力して、aps-sdk-node フォルダ下に express パッケージをインストールします。
アプリ設定
- APS API を利用するアプリの登録とキーの取得 の手順 13. で、使用する Callback URL を http://localhost:3000/callback に設定します。
コードの準備
- VS Code を起動後、[ファイル] >> [フォルダーを開く...] メニューから aps-sdk-node フォルダを開きます。
- 続いて、[ファイル] >> [新しいテキスト ファイル] メニューから、VS Code 上に新しいファイルを作成します。「言語の選択」では JavaScript を選択します。
- 作成したファイルに次のコードを貼り付けて。<Your Client ID> と <Your Client Secret> の箇所を使用する Client ID と Client Secret にそれぞれ置き換えます。
const { SdkManagerBuilder } = require("@aps_sdk/autodesk-sdkmanager");
const { AuthenticationClient, ResponseType, Scopes } = require("@aps_sdk/authentication");
const express = require('express');
let app = express();
const sdkManager = SdkManagerBuilder.create().build();
const authenticationClient = new AuthenticationClient(sdkManager);
let APS_CLIENT_ID = "<Your Client ID>";
let APS_CLIENT_SECRET = "<Your Client Secret>";
let APS_CALLBACK_URL = "http://localhost:3000/callback";
app.get('/', function (req, res) {
try {
url = authenticationClient.authorize(APS_CLIENT_ID, ResponseType.Code, APS_CALLBACK_URL, new Array(Scopes.DataRead, Scopes.DataCreate));
res.redirect(url);
}
catch (error) {
console.error(error);
}
});
app.get('/callback', async function (req, res) {
try{
let acode = req.query.code;
const threeLeggedCredentials = await authenticationClient.getThreeLeggedToken(APS_CLIENT_ID, acode, APS_CALLBACK_URL, {
clientSecret: APS_CLIENT_SECRET
});
console.log(threeLeggedCredentials.access_token);
res.send('Got Credentials!');
}
catch (error) {
console.error(error);
}
});
app.listen(3000);
console.log("Server is listening port 3000");
- [ファイル] >> [名前を付けて保存...] メニューを選択して、aps-sdk-node フォルダ下に 3-legged.js の名前で保存します。(ファイル名は任意です。)
コードの実行 - アクセストークンの取得
- 3-legged.js を表示した状態で、[実行] >> [デバッグの開始] メニューを選択、続けて「デバッガ―の選択」で Node.js を選択します。
- Web ブラウザを起動して、URL 欄に localhost:3000 と入力します。
- サインインを求められるので、Autodesk ID(ユーザー名とパスワード)を入力後、「アプリケーションをオーソライズ」画面で認可のために [許可] ボタンをクリックします。
- [デバッグ コンソール]タブに取得したアクセストークンが表示されます。
By Toshiaki Isezaki
コメント
コメントフィードを購読すればディスカッションを追いかけることができます。