0

こんにちは、インターネットの親切で慈悲深い人々。

私は Kathryn Hurley の Fusion Tables での OAuth の使用に関する記事 (ここにリンク: OAuthandFusionTables ) を読んでいて、この件に関する私の以前の質問に対する Odi からの回答も調べていました (ここにリンク:私の前の質問)。 google-api-javascript-client ライブラリ リファレンス (リンクはこちら: gapi リファレンス) を読んで読み直しましたが、Fusion Tables、oAuth2.0、および google-api-javascript-client に関する明らかな動作にまだ非常に戸惑っていますライブラリは、Google が提供する Javascript API の例で明らかにされています (リンクはこちら: Google Example Javascript gapi with Fusion Tables )。

Google Javascript API の例:

A.) gapi-client JavaScript ライブラリを使用したテーブルの挿入と更新のための Fusion Table oAuth リクエストが、SQL リクエスト文字列で返された oAuth トークンを実際に使用しないのはなぜですか?

...または別の言い方をすれば: B.) google-api-javascript-client ライブラリを使用する場合、アクセス トークンの実際の利点は何ですか?...返された認証トークンは、Kathry Hurley の「アプリケーション 2 -ユーザーが自分の Fusion Table データにアクセスできるようにするアプリケーションを作成していますか?

...または別の言い方をすれば: C.) ブラウザ セッションと Google Fusion Table サーバー間の https ssl 接続は、実際にアクセスを「承認」して許可しているのでしょうか?...そして、これはある種の ssl 接続 (これはよくわかりません)...そして、アクセスを許可するアクセストークンではなく、トークンは、gapi-clientを使用するときにセッションが良好/接続済み/OKであることを示す返された「フラグ」にすぎませんか?

または D.) 私は単に幻覚を起こしているのでしょうか?...そして Javascript API の例や gapi クライアント ライブラリで何かが正しく見えないのでしょうか?

詳細は次のとおりです。

最初に Javascript API の例を試してみてください (ここにもリンクがあります: Google Example Javascript gapi with Fusion Tables ) ...これは非常に優れており、私にとっては理解に苦慮しています。

2 番目に、この API の例の「ハック」を試してください。これは、一連のアラートをスローし (何が起こっているかを追跡できるようにするため)、SQL 文字列を画面に書き込みます: (ここにリンク: My example hack Google gapi の例の)

そして、例のハックからわかるように、「テーブルの作成」と「データの挿入」の両方で、アクセス authToken は Fusion Tables に送信された sql 文字列の一部ではありません: 例:

{"b":{"path":"/fusiontables/v1/query","method":"POST","params":{},"headers":{"Content-Type":"application/x- www-form-urlencoded","Content-Length":105},"body":"sql=INSERT%20INTO%201zkJhx0XdI3SsguI2Pided-m28mNSzI0MsMKNhY0%20(Name%2C%20Age)%20VALUES%20('test'%2C% 204)"}}

上記の文字列には認証アクセス トークンはありません。

ただし、Kathry Hurley の記事 (OAuth 2.0 と Fusion Tables について) によると、手順 7 に特に注意して、手順を次に示します。

0 アプリケーションを登録する

1 ユーザーが Web アプリケーションにアクセス

2 Web アプリケーションがユーザーを Google 認証ページにリダイレクトします

3 ユーザーが Web アプリケーションへのアクセスを許可します

4 Google がユーザーを Web アプリケーションにリダイレクトし、認証コードを返します。

5 アプリケーションが Google にアクセス トークンとリフレッシュ トークンを要求する 6 Google がアクセス トークン、リフレッシュ トークン、およびアクセス トークンの有効期限を返す

7 アクセス トークンは、トークンの有効期限が切れるまで、Fusion Tables への後続のすべてのリクエストに使用できます

8 アクセス トークンの有効期限が切れると、更新トークンを使用して新しいアクセス トークンが要求されます

上記のステップ 7 は、アクセス トークンが後続のリクエストに使用されることを規定しているようです。...そして提供されたサンプル コードは、アクセス トークンが含まれていることを示しています。

urllib.urlencode({
      'sql': 'SHOW TABLES',
      'access_token': access_token
  }),

すっごく... Googleの例のgapi.clientライブラリの見かけの動作の違いに困惑しています(挿入または更新を行うときに、SQLリクエスト文字列でアクセストークンを明らかに送信しません)。 Fusion Tables にアクセスするときにアクセス認証トークンを送信する方法。

おそらく、一部の人々はいくつかの光を当てることができますか?前もって感謝します

4

1 に答える 1

1

アクセストークンは重要であり、実際には後続のリクエストの認証に使用されるため、これを行う必要があるのは1回だけです(つまり、トークンの有効期限が切れるまで、つまり1時間後)。

自分でリクエストを送信する場合は、HTTP POSTリクエストをhttps://www.googleapis.com/fusiontables/v1/queryに送信して、パラメータとしてアクセストークンを指定する必要があります。ただし、ここではそうではありません。HTTP関連のものを処理するgapi-javascriptライブラリを介してトークンを送信しています。

しかし、そこにあるアクセストークンはどうですか?gapi.auth.authorize()簡単です。メソッドを使用して認証すると( Googleのgapiの例を参照)、ライブラリはアクセストークンを記憶し、それ以降のすべての呼び出しに使用します。これを確認するには、デバッグコンソールを使用してgapi.auth.getToken()、Googleの例を表示するときに入力します。

ガピアクセストークンのスクリーンショット

于 2012-08-04T22:17:38.667 に答える