3-legged 認証 Forge API サンプル

Model Derivative API と Data Management API を評価出来るサンプルとして、以前、新しい機能を評価する Forge API サンプル のブログ記事をご紹介したことがあります。その後、2016 年 11 月の 新機能の追加 にともない、Callback URL などの一部の処理も含め、GitHub リポジトリの内容が変更されていて、従来のブログ記事の手順ではローカル コンピュータでのセットアップが出来なくなっています。今回は、新しく更新された model.derivative-nodejs-sample サンプルのローカルコンピュータへのセットアップについて、再度をまとめておきたいと思います。

リポジトリの内容からローカル ブランチを作成するには、事前に Git Shell や Node.js をセットアップしておく必要があります。また、ブランチ内のソースコードを編集していく過程では、Forge で利用する Client ID と Client Secret(Consumer Key と Consumer Secret)を事前に デベロッパ ポータル から取得しておく必要があります。これらの手順は、それぞれ、次のブログ記事でご案内しています。

Forge の開発環境

Forge API を利用するアプリの登録とキーの取得


セットアップ

  1.  Autodesk ID でデベロッパ ポータルにサインインして、My Apps にアプリを登録します。アプリ登録の際には、Select the APIs you want to use in your app 欄から Model Derivative API と Data Management API にチェックを入れてください。また、Callback URL には、このサンプルをクライアント コンピュータでローカルに使用する http://localhost:3000/api/forge/callback/oauth を指定します。
    既にアプリが登録されている場合には、個々のアプリ ページ下部にある [EDIT > ] リンクから、使用する API や Callback URL を編集することが出来ます。
  2. Web ブラウザで GitHub 上の model.derivative-nodejs-sample リポジトリ ページを開きます。
  3. 画面右側の [Clone or download] ボタンをクリックして、表示される URL  https://github.com/Autodesk-Forge/model.derivative-nodejs-sample.git をクリップボードにコピーておきます。
  4. GitHub 上のプロジェクトを 、リポジトリから開発に使用するクライアント コンピュータにコピーします。Git Shell を起動して、git clone https://github.com/Autodesk-Forge/model.derivative-nodejs-sample.git と入力します。この処理が完了すると、C:Users<Windows ログイン ユーザ名>DocumentsGitHub フォルダ下に  model.derivative-nodejs-sample フォルダが作成され、GitHub リポジトリからソースコードがコピーされます。
  5. コピーされたプロジェクトに Node.js で必要となるミドルウェア パッケージをインストールします。Node.js command prompt を起動して、CD コマンドで現在のフォルダを C:Users<Windows ログイン ユーザ名>DocumentsGitHubmodel.derivative-nodejs-sample フォルダへ移動してから、npm install と入力します。
module.exports = {

    // this this callback URL when creating your client ID and secret
    callbackURL: process.env.FORGE_CALLBACK_URL || 'http://localhost:3000/api/forge/callback/oauth',

    // set enviroment variables or hard-code here
    credentials: {
        client_id: process.env.FORGE_CLIENT_ID || 'Pj7SECpCP820kyYKa1wQKVAy04FK5oKn',
        client_secret: process.env.FORGE_CLIENT_SECRET || 'ZpAS0I4YuHyOEjbF'
    },

    // Required scopes for your application on server-side
    scopeInternal: [
        'viewables:read', 'data:read', 'data:write', 'data:create', 'data:search',
        'bucket:create', 'bucket:read', 'bucket:update', 'bucket:delete'
    ],
    // Required scope of the token sent to the client
    scopePublic: ['viewables:read']
};
  1. Node.js command prompt 上で npm run dev と入力して、Web サーバーを起動します。node start.js と入力して Web サーバーを起動することも出来ます。
  2. ここまでの手順でセットアップが完了です。WebGL 対応の Web ブラウザを開いて、http://localhost:3000/ の URL でページを開いてみてください。

動作テスト

画面上の [Log In] ボタンをクリックすると、Callback URL  にリダイレクトされてオートデスクのクラウド サービスにアクセスするためのサインイン画面に遷移します。

Two browser windows side by side showing a sign-in process. The left window displays a sign-in page with an email input field. The right window shows a welcome message with a password input field for sign-in.

このサンプルは、ここでサインインしたユーザだけがアクセス出来るストレージ領域にアクセスしようとします。このため、初回アクセスの場合のみ、サインインしたユーザに対して、アプリにストレージへのアクセス権を与えるかの確認を求められます。

ここで [許可] をすることで、model.derivative-nodejs-sample サンプル アプリがユーザのストレージ領域にアクセス出来るようになります。

Authentication permission request screen with options for data access and user consent in both English and Japanese.

アクセス許可が与えられると、A360など、サインインに使用した Autodesk ID に関連付けられた Hub と 配下の Project、その下の Folder、Item、Version の階層をツリー表示するはずです。

Screenshot of the Autodesk Model Derivative API interface displaying a 3D model of a diesel train, with a list of project folders and item details on the left side.

プロジェクト内のツリーからデザイン ファイルをクリックすると、Viewer 上にデザインを表示させることが出来ます。A360 プロジェクト内の同一ファイルであっても、時計アイコンでバージョンが個別に示されていて、それぞれを表示したり、モデル内の属性を取得したりすることが出来ます。

選択したデザイン ファイルは、ファイル形式毎にサポートされている他のファイル形式に変換、ダウンロードすることが出来ます。これは、Model Derivative API の機能です。

また、2016 年 11 月に追加された Data Management API のアタッチメント機能では、テキスト ファイルや画像ファイルなど を指定した Version に直接関連付けることも出来ます。

By Toshiaki Isezaki

Discover more from Autodesk Developer Blog

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

Continue reading