オートデスク SaaS ストレージの利用: オートデスクスト …...Forge Online...
Transcript of オートデスク SaaS ストレージの利用: オートデスクスト …...Forge Online...
Forge Online
伊勢崎 俊明オートデスク 株式会社
オートデスク SaaS ストレージの利用:オートデスク ストレージ サービスの理解
2
デスクトップからクラウドへ
3
2014年9月
autodesk360.comプロジェクト ベースの管理
360.autodesk.comフォルダ ベースの管理
2012年3月 360.autodesk.comフォルダ ベースの管理
documents.cloud.autodesk.com
2015年9月
新生 A360A360 Drive 統合
プロジェクト ベース管理ファイル操作を追求
a360.autodesk.com
ストレージ サービスの発展と分化
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/10/transition-on-autodesk-cloud-storage-service.html
4
建設業に特化
プロジェクト ベース管理a360.autodesk.com
製造業に特化
プロジェクト ベース管理a360.autodesk.com
建設業に特化
プロジェクト ベース管理
BIM 360 Docs
個人用に特化
プロジェクト ベース管理a360.autodesk.com
2016年8月
2018年4月
360.autodesk.comフォルダ ベースの管理
drive.autodesk.comフォルダ ベースの管理
AUTODESK DRIVE
サブスクリプションに特化
docs.b360.autodesk.com
2020年5月
~ 続き
API 公開
5
6A360 のストレージ構造
Project Service
Data Service
Object Storage Service
Hub Project
FolderItem
Version
OSS
Item
Version
OSSOSS
Forge アプリ Forge アプリ
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2017/04/cloud-storage-forge-uses.html
7
プロジェクト フォルダ(Project)
A360 の理解
プロジェクト ファイル(Item、Version)
ハブ(Hub)
8A360 の理解
§ 1 つの Autodesk ID は複数の Hub への関連付けが可能§ 他者からプロジェクトに招待/共有された場合も
9プロジェクト メンバーの招待と管理
§ プロジェクト管理者のみ可能
10ファイル単位の共有
§ 共有リンクの生成とプライバシー設定
11Forge でサポートされる構造
§ プロジェクト ベース をサポート§ A360 Personal、Fusion Team、BIM 360 Docs§ Data Management API でアクセス可能
§ フォルダ ベース は未サポート§ Autodesk Drive§ プロジェクト ベースのストレージ領域とは独立§ 対応 API は未公開
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2019/01/about-obscure-things-on-a360-storage-service.html
12SaaS へアップロードされたファイルは自動変換される
13
認証/認可
ファイル変換
DWGバッチ処理
データ操作2D/3D 表示
2D 写真→3D 変換
アカウント&
プロジェクト操作
通知2D/3D データのビューア表示する場合
14A360/Fusion Team/BIM 360 Docs データ統合
A360/Fusion Team/
BIM 360 Docs のデータを参照して
Forge で独自実装を提供(受託開発)
Forge Online
伊勢崎 俊明オートデスク 株式会社
オートデスク SaaS ストレージの利用:SaaS ストレージ内の SVF アクセス
16Forge を始めるには?
§ まずは https://forge.autodesk.com/ へ
§ 目的はデベロッパ キーの取得§ Client Key(別名:Consumer Key)§ Client Secret(別名:Consumer Secret)
1 2 3
Autodesk ID でサインイン Forge アプリ作成 開発
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2019/04/how-to-get-started-forge.html
17
Forge ポータル(forge.autodesk.com)
JavaScript
JavaScript
貴社アプリWeb サーバー
RESTful API
JavaScript
JavaScript
JavaScript
HTML
Client IDClient Secret
Access Token
デベロッパ キーとアクセス トークン
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/11/about-access-token.html
18シナリオ/目的に応じた認証
Project Service
Data Service
Object Storage Service
Hub Project
FolderItem
Version
OSS
Item
Version
OSSOSS
2-legged OAuth
Forge アプリ Forge アプリ
3-legged OAuth
Forge アプリがデータを直接管理・運用する方法-2-Legged OAuth -
ForgeアプリがA360/Fusion Team/BIM 360 Docs
のユーザ データ領域にアクセスして運用する方法
-3-Legged OAuth -
Bucket
参考ブログ記事:http://adndevblog.typepad.com/technology_perspective/2016/08/oauth-authentication-scenario-on-forge.html
19A360/Fusion Team/BIM 360 Docs データ統合
A360/Fusion Team/
BIM 360 Docs のデータを参照して
Forge で独自実装を提供(受託開発)
20シナリオ/目的に応じた認証
Project Service
Data Service
Object Storage Service
Hub Project
FolderItem
Version
OSS
Item
Version
OSSOSS
2-legged OAuth
Forge アプリ Forge アプリ
3-legged OAuth
Forge アプリがデータを直接管理・運用する方法-2-Legged OAuth -
ForgeアプリがA360/Fusion Team/BIM 360 Docs
のユーザ データ領域にアクセスして運用する方法
-3-Legged OAuth -
Bucket
21
forge.autodesk.com からアカウント登録とアプリの作成 (手動)
ユーザ ストレージ アクセス許可とAccess Token の取得 (RESTful API)
1.Hub へのアクセス (RESTful API)
2.Project へのアクセス (RESTful API)
3.Folder へのアクセス (RESTful API)
4.Item へのアクセス (RESTful API)
5.Version へのアクセス (RESTful API)
6.クライアントからのアクセス (RESTful API & JavaScript API)
Data Management API
Authentication API
Model Derivative API(変換が必要な場合)
Viewer
デザイン データの用意
Client ID/Secret の取得
3-legged OAuth
22A360
Fusion TeamBIM 360 Docs データにアクセスするには?
23認証(Authentication)と認可(Authorization)
§ A360/Fusion Team/BIM 360 Docs 上のデータ§ Autodesk ID でサインインした
エンドユーザのみがアクセス可能
§ Forge アプリは通常アクセス不可、ただし、§ エンドユーザからの認可があればアクセスが可能に!§ 3-legged OAuth の仕組みが認可プロセスを実現§ Callback URL 実装を利用
23
、ただし、
243-legged OAuth での Viewer 利用手順の理解
§ ストレージ所有のエンドユーザはユーザ名/パスワードを入力§ エンドユーザはアプリのデータ アクセスを認可する必要§ 全ファイルはエンドユーザ アカウント配下に保存される
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2017/08/getting-3-legged-oauth-access-token-using-forge-sdk.html
①
③②
25RESTful API のテストツール
§ Postman§ https://www.getpostman.com/§ コードを書かずに RESTful API のテストが可能
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2016/09/restful-api-and-testing-tools.html
26My Apps からのアプリ登録
どのAPIを使うか指定
アプリ情報を入力
Callback URL !!
27Postman でのコールバック URL 指定
https://www.getpostman.com/oauth2/callback
28Postman を使った 3-legged OAuth のテスト
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2016/12/3-legged-authentication-on-postman.html
29エンドユーザ認可のプロセスとは?
① Forgeアプリにアクセスすると当該ストレージの所有者であるエンドユーザにサインインを促すユーザ名(Autodesk ID)画面に遷移
② 同じくパスワード入力画面に遷移
③ サインインが完了した時点でForge アプリが指定した Scope に沿って Forgeアプリからのアクセスを認可するか確認する画面に遷移
30
forge.autodesk.com からアカウント登録とアプリの作成 (手動)
ユーザ ストレージ アクセス許可とAccess Token の取得 (RESTful API)
1.Hub へのアクセス (RESTful API)
2.Project へのアクセス (RESTful API)
3.Folder へのアクセス (RESTful API)
4.Item へのアクセス (RESTful API)
5.Version へのアクセス (RESTful API)
6.クライアントからのアクセス (RESTful API & JavaScript API)
Data Management API
Authentication API
Model Derivative API(変換が必要な場合)
Viewer
デザイン データの用意
Client ID/Secret の取得
Viewer 表示までのステップ
31
forge.autodesk.com からアカウント登録とアプリの作成 (手動)
ユーザ ストレージ アクセス許可とAccess Token の取得 (RESTful API)
GET hubs
GET hubs/:hub_id/projects
GET projects/:project_id/folders/:folder_id/contents
GET projects/:project_id/items/:item_id
GET projects/:project_id/versions/:version_id
LMV Ninja
Data Management API
Authentication API
Model Derivative API(変換が必要な場合)
Viewer
デザイン データの用意
Client ID/Secret の取得
Viewer 表示までのステップと endpoint
32Postman コレクションの利用
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2016/12/understanding-steps-to-use-viewer-on-postman2.html
Forge Online
伊勢崎 俊明オートデスク 株式会社
オートデスク SaaS ストレージの利用:Forge SDK を使った 3-legged OAuth
35Forge サンプル
§ Forge ポータル下部 Code Samples からのアクセス
36Forge SDK
§ RESTful API をラップするサーバー実装用ユーティリティ
参考ブログ記事: http://adndevblog.typepad.com/technology_perspective/2017/01/forge-sdk.html
37Forge SDK と Forge SDK のサンプル
§ 実際に使用するページ§ https://github.com/Autodesk-Forge/forge-api-nodejs-client
§ forge-api-nodejs-client リポジトリ内のサンプルを参照
Workshop で使用
38Forge SDK(Node.js)を使ったコールバック実装例
var express = require("express");var ForgeSDK = require('./../src/index');var app = express();
var CLIENT_ID = '<Your Client ID>‘, CLIENT_SECRET = '<Your Client Secret>';var REDIRECT_URL = '<Your Callback URL>’;
var autoRefresh = false;var oAuth2ThreeLegged = new ForgeSDK.AuthClientThreeLegged(CLIENT_ID, CLIENT_SECRET,
REDIRECT_URL, ['data:write', 'data:read’],autoRefresh);
app.get('/', function (req, res) {var url = oAuth2ThreeLegged.generateAuthUrl();res.redirect(url);
});
app.get('/callback', function (req, res) {var code = req.query.code;oAuth2ThreeLegged.getToken(code).then(function (credentials) {
console.log("**** Got Credentials",credentials);res.header({'Content-Type': 'text/html; charset=utf-8'});res.header({'Access-Control-Allow-Origin': '*'});res.send(JSON.stringify(credentials));
}, defaultHandleError);});
38
39SaaS ストレージ データの表示
§ Node.js ベースの Viewer 実装
§ Forge SDK を使用
§ 3-legged OAuth
§ ストレージ内をツリー表示
§ バージョン別 SVF 表示
§ learn.forge.viewhubmodels サンプルhttps://github.com/Autodesk-
Forge/learn.forge.viewhubmodels/tree/nodejs参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2019/02/sample-which-shows-a360-data-using-3-legged-oauth.html
40
ユーザ ストレージ アクセス許可とAccess Token の取得
アップロード先フォルダの特定(Hub > Project > Folder の ID 取得)
1.Storage の作成 (RESTful API)POST projects/:project_id/storage
2.デザイン ファイルのアップロード (RESTful API)PUT buckets/:bucket_key/objects/:object_name
3.バージョンの作成 (RESTful API)POST projects/:project_id/items
SaaS ストレージへのファイル アップロードについて
Data Management API
Model Derivative API(変換が必要な場合)
Authentication API
API からのアップロードは SVF への自動変換なし
オートデスク SaaSストレージアクセス時の
Bucket 名は固定
wip.dm.prod
41Refresh Token について
§ アプリは Access Token 有効期限切れ時の振る舞いを決定§ 再度ユーザ サインインを求める§ Refresh Token で Access Token を取得し直す
>>POST https://developer.api.autodesk.com/authentication/v1/refreshtoken
Forge Online
伊勢崎 俊明オートデスク 株式会社
オートデスク SaaS ストレージの利用:BIM 360 Docs 利用時の注意点
43BIM 360 Docs アクセスの追加手順 ~ その1
§ BIM 360 Docs 固有の追加設定が必要§ A360/Fusion Team ストレージ アクセスは不要
43
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2017/06/bim-360-docs-and-data-management-api-access.html
44BIM 360 Docs アクセスの追加手順 ~ その2
44
45BIM 360 Docs アクセスの追加手順 ~ その3
45
46BIM 360 Docs アクセスの追加手順 ~ その4
46
47BIM 360 Docs アクセスの追加手順 ~ その5
47
Account IDHub ID から ‘b.’ を削除したものと同等(どこかに記録しておくことを推奨)
Client IDForge ポータルで取得済でBIM 360 APIで使用する ID
48BIM 360 Docs アクセスの追加手順 ~ その6
48
49カスタム統合機能タブが表示される?
§ 表示は 100 ユーザ以上のサブスクリプション契約時のみ§ トライアルでの開発評価が必要な場合は …§ [email protected] までリクエスト
49
I’d like to integrate my Forge app with BIM 360 Docs.Could you activate my account to get access?My BIM 360 Name is [email protected] (email address) and BIM 360 Account ID is yyy. Also email address of BIM 360 account admin is [email protected],-Xxx
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/03/forge-and-bim-360-integration-tips.html
50BIM 360 Docs と 2-Legged OAuth
§ Data Management API でのアクセス
§ 2-Legged OAuth で取得した Access Token も利用化§ BIM 360 は権限設定が細やか >> より柔軟な方法を提供§ 当該 Client ID が「カスタム統合機能」で登録済が前提
参考ブログ記事:https://adndevblog.typepad.com/technology_perspective/2018/03/bim-360-docs-and-forge-oauth.html
51Data Management API:2-legged vs 3-legged 例
§ A360 プロジェクト ルートフォルダ直下アイテム一覧取得
51
52Data Management API:GET items
§ 2-legged
52
53Data Management API:GET items
§ 3-legged(ユーザがプロジェクトメンバの場合)
53
54Data Management API:GET items
§ 3-legged(ユーザがプロジェクトメンバでない場合)
54
55Data Management API:2-legged vs 3-legged 例
§ BIM 360 プロジェクト ルートフォルダ直下アイテム一覧取得
55
56Data Management API:GET items
§ 2-legged§ 3-legged(ユーザがプロジェクトメンバの場合)
56
57Data Management API:GET items
§ 3-legged(ユーザがプロジェクトメンバでない場合)
57
Autodesk and the Autodesk logo are registered trademarks or trademarks of Autodesk, Inc., and/or its subsidiaries and/or affiliates in the USA and/or other countries. All other brand names, product names, or trademarks belong to their respective holders. Autodesk reserves the right to alter product and services offerings, and specifications and pricing at any time without notice, and is not responsible for typographical or graphical errors that may appear in this document.© 2018 Autodesk. All rights reserved.