新 Node.js SDK と VS Code で 3-legged アクセストークンを取得


新 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 パッケージを次の手順でインストールをおこないます。

  1. MKDIR コマンドで aps-sdk-node フォルダを作成します。(フォルダ名は任意です。)
  2. CD コマンドで aps-sdk-node フォルダに移動します。
  3. npm install –save @aps_sdk/autodesk-sdkmanager @aps_sdk/authentication と入力して、aps-sdk-node フォルダ下に SDK Manager と Authentication API パッケージをインストールします。
  4. 3-legged 認証フローでは、コールバックを処理するために express パッケージを使った ルーティング をおこないます。コマンドプロンプトに npm install express と入力して、aps-sdk-node フォルダ下に express パッケージをインストールします。

アプリ設定

  1. APS API を利用するアプリの登録とキーの取得 の手順 13. で、使用する Callback URL を http://localhost:3000/callback に設定します。

コードの準備

  1. VS Code を起動後、[ファイル] >> [フォルダーを開く…] メニューから aps-sdk-node フォルダを開きます。
  2. 続いて、[ファイル] >> [新しいテキスト ファイル] メニューから、VS Code 上に新しいファイルを作成します。「言語の選択」では JavaScript を選択します。
  3. 作成したファイルに次のコードを貼り付けて。<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");
  1. [ファイル] >> [名前を付けて保存…] メニューを選択して、aps-sdk-node フォルダ下に 3-legged.js の名前で保存します。(ファイル名は任意です。)

コードの実行 – アクセストークンの取得

  1. 3-legged.js を表示した状態で、[実行] >> [デバッグの開始] メニューを選択、続けて「デバッガ―の選択」で Node.js を選択します。
  2. Web ブラウザを起動して、URL 欄に localhost:3000 と入力します。
  3. サインインを求められるので、Autodesk ID(ユーザー名とパスワード)を入力後、「アプリケーションをオーソライズ」画面で認可のために [許可] ボタンをクリックします。
  4. [デバッグ コンソール]タブに取得したアクセストークンが表示されます。

By Toshiaki Isezaki


Comments

Leave a Reply

Discover more from Autodesk Developer Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading