3

Realtime-Playground の例に従って、アプリケーションで「ファイルを開く」を有効にしようとしています。認証は正常に機能し、空のファイルが gDrive に作成されます。ファイル選択用のポップアップを作成するコードは機能していませんが。次のコードは rt-playground の一部であり、私は同じものを使用しています:

var popupOpen = function () {
      var token = gapi.auth.getToken().access_token;
      var view = new google.picker.View(google.picker.ViewId.DOCS);
      view.setMimeTypes("application/vnd.google-apps.drive-sdk." + realTimeOptions.appId);
      var picker = new google.picker.PickerBuilder()
          .enableFeature(google.picker.Feature.NAV_HIDDEN)
          .setAppId(realTimeOptions.appId)
          .setOAuthToken(token)
          .addView(view)
          .addView(new google.picker.DocsUploadView())
          .setCallback(openCallback)
          .build();
      picker.setVisible(true);
    }

上記の機能をボタンにも接続しました。認証前にボタンをクリックすると、次のエラーが表示されます

TypeError: 'undefined' is not an object (evaluating 'gapi.auth.getToken')

これは正しい動作だと思います。認証後にボタンをクリックすると、次のエラーが表示されます。

Uncaught TypeError: Cannot read property 'View' of undefined 

エラーは、次のコード行から発生します。

      var view = new google.picker.View(google.picker.ViewId.DOCS);

index.html ページに rt-playground で使用されるすべてのスクリプトを追加しました。認証が機能しているので、問題はそれが原因ではないと思います。フィードバックをいただければ幸いです。

これは私のコードです (テストに使用されますが、フィードバックは大歓迎です)。

Ps: 私が正しく行うかどうかわからないことの 1 つ (の 1 つ) は、appID の設定です。API コンソールを調べたところ、そのような名前の属性が見つからなかったので、プロジェクト ID と製品名を使用してみました。

アップデート

google.load('picker', '1'); を追加することにより 私のindex.htmlページ内で機能しました。このコードはリアルタイムプレイグラウンドには存在しませんが、なぜそれを使用する必要があるのか​​ わかりません..

4

1 に答える 1

3

Google ピッカーとドライブの統合に関するこのドキュメントを確認してください。google.load('picker', '1');js 統合の完全なソースコードがあります。

于 2013-07-01T08:43:50.250 に答える