2016年12月2日金曜日

アクセストークン=Forge行き切符

データはどこに?

ビューア(FORGE Viewer)に表示するデータはどこに保存されているのか?あるいはどこに保存するのか?というと、いくつかの答えがあります。
  • A360 Team (BIM360 Team)
  • Fusion Team
  • BIM360 Docs
などの、オートデスクのクラウドサービスのストレージです。ところがこれらのクラウドストレージからデータを取得するには、3-Legged Token なるものを取得しなければなりません。

うーん、なんか心のハードルが高いです。

そこでますは、2-Legged Token (3より2のほうが簡単そうだから・・・)を使って、データにアクセスしてみます。この場合、データは
  • バケット
と呼ばれる、専用のクラウドストレージスペースを使います。自分専用のバケットを作成するには、
  • アクセストークン
なる「切符」が必要で、この切符を取得するには
  • クライアントID
  • クライアントシークレット
という二つの合言葉が必要です。この二つの合言葉は、前回アプリを登録したときにあなた専用の合言葉が提供されているのです。

クライアントIDとクライアントシークレットの確認

それでは再度こちらにアクセスしてサインインしてみましょう。そして登録したアプリをクリックします。
アプリをクリック!
すると下の図のようになっていて、

  • Client ID
  • Client Secret

が見えるはずです。ClientSecretは右の「show」をクリックすると確認できます。
Client IDとClient Secretがありますね!
この二つの文字列を使って、バケット作成用のアクセストークンを取得してみましょう。


チュートリアルを実行してみる・・・(*_*)



アクセストークン(切符)を取得するにはどうしたらいいのか?ちょうどその手順を示した「ステップバイステップチュートリアル」なるものが用意されています。ありがたい!早速こちらをクリックして、見てみましょう。

しかし、これは????
これはなんでしょう・・・・・(´・ω・`)

いきなり「-curl」などと始まっていて、これまたさっぱりわかりませんねー。cURLなんて言ってるけど、結局REST APIですよね。

RESTって「パラメータを指定して特定のURLにHTTP(文字列を送り込むってこと)でアクセスすると、XMLで記述されたメッセージが返されてくるシステム」という定義です。

ということは、パラメータの文字列を指定して、とあるURLに文字列を送り込むとXML形式の情報が返されるってことです。

それじゃあDHCを使って具体的にやってみようじゃないですか!

DHCを起動!


最初の回でDHCをインストールしましたが、まだインストールしていない場合は、初回を参考にしてインストールしてください。それでは、Google Chromeを立ち上げて、アドレスバーの右端に表示されているDHCのボタンをクリックしましょう。
DHCを起動しよう!
すると次のような画面になるはずです。
DHCの画面
これから行うテストのために、一番上の「type a name」のところに適切な名前を入れましょう。私は「FORGE GET a 2-Legged Token 001」としました。

DHCでStep-by-Step Tutorialを実行

それではDHCを使ってFORGEの使い方を研究してみましょう。まず、リクエストの送信先URLや送信するパラメータをを決めなければなりません。これは以下のマニュアルに書いてあります。

https://developer.autodesk.com/en/docs/oauth/v2/reference/http/

今回はここの「Two-Legged Context」の「POST authenticate (POST認証)」を選択するとでてきます。
Two-Legged Contextの「POST認証」をクリック
こちらに必要なURIやパラメータの情報があります。整理しながら、DHCに設定していきましょう。まず、送信先ですがマニュアルによると以下のようになっています。
送信先URL

そこで、DHCのRequestの部分に、このURIをコピペして、末尾のメソッドを「POST」に設定します。
送信先とメソッドを指定
次にパラメータを指定するのですが、formで作成するので、画面右の「text▼」をクリックして、「form」を選んでおきます。
formに変更
送り込むパラメータですが、こちらの「Header」と「Body structure」に書かれています。
ヘッダー
Body Structure
まず、ヘッダーですが、これはDHCでformを指定した時点で、勝手に作ってくれています。
ヘッダーは自動的につけてくれる
次にBODYの記述ですが、4つのNameが必要なので「BODY」の下の「+」を4回クリックし、cliend_id、client_secret、grant_type、scopeの名前を追加します。
BODYに名前を追加

client_id
client_secret

これらは、上で説明したようにFORGEに登録したアプリケーションのページに表示されるクライアントIDとクライアントシークレットの値をいれます。クライアントシークレットは*****で表示されていますが、「show」をクリックすると現れます。

grant_type

マニュアルによると「Must be client_credentials」です。Must beですので、この「client_credentials」の文字を設定します。

scope

スコープは目的に応じていろいろ組み合わせて設定します。今回はチュートリアルにしたがって「data:read」とします。
client_idとclient_secretは皆さんのアプリの値を設定してください。

レスポンスを見てみる

これで準備完了!アドレスのよこの青の[Send]ボタンをクリックしてみましょう!
リクエストを送ってみよう!
どうだっ!!キター!
レスポンス
おお!感動的だ。ちゃんと「200 OK」の文字が!BODYのところを拡大すると、こうなります。
戻り値
これらの意味はちゃんとマニュアルの「Responce」の「Body structure」に書かれています。
戻り値の解説

token_type

いつも Bearerでしょう。

expire_in

アクセストークンの有効期限(秒で表示してます)

access_token

これがアクセストークン(切符)の文字列です。(^◇^)

こうしてみると、一見不親切そうなマニュアルも、ひょっとしてちゃんとしてるんじゃないか?などと期待を持ってしまいそうです。

以上無事、アクセストークン(切符)を取得できました。
でもこの切符はどうやって使うんだろうねぇ・・・・・



0 件のコメント:

コメントを投稿