3

私はリアルタイム API を使用しており、リアルタイム クライアント ユーティリティを利用しています。

既存のコードを使用して、次の方法でリアルタイム ファイルを作成しています。

createRealtimeFile = function(title, callback) {
  gapi.client.load('drive', 'v2', function() {
    gapi.client.drive.files.insert({
      'resource': {
        mimeType: rtclient.REALTIME_MIMETYPE,
        title: title
      }
    }).execute(callback);
  });
}

そして、このピッカーでファイルを開こうとしています:

var popupOpen = function () {
      var token = gapi.auth.getToken().access_token;
      var view = new google.picker.View(google.picker.ViewId.DOCS);
      view.setMimeTypes(rtclient.REALTIME_MIMETYPE+ "."+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(pickerCallback)
          .build();
      picker.setVisible(true);
    };

setMimeTypes を使用すると、ドキュメントが見つかりません。そのフィルターを削除すると、ドキュメントが正常に表示されます (ドライブ内のドキュメントのたびに)。私が使用している MIME タイプはデフォルトのものです。

rtclient.REALTIME_MIMETYPE = 'application/vnd.google-apps.drive-sdk';

これがリアルタイムプレイグラウンドで行われる方法であるため、appID を追加しています。「。」なしでも試しました。または appID ですが、ドキュメントが見つかりません。

フィルターを修正する方法について何か提案はありますか?

4

3 に答える 3

3

作成した mimeType を探す必要があります。mimeType を使用してファイルを作成rtclient.REALTIME_MIMETYPEし、mimeType を使用してファイルを探していますrtclient.REALTIME_MIMETYPE+ "."+realTimeOptions.appId。これが、ファイルを取得できない理由です。

ファイルピッカーのコードを次のように変更します。

view.setMimeTypes(rtclient.REALTIME_MIMETYPE);

そして、あなたが変わることを確認してください

rtclient.REALTIME_MIMETYPE = 'application/{{YOURE_CUSTOM_MIMETYPE}}';

他のアプリとの衝突を避けるため。

于 2013-07-28T06:14:16.817 に答える
1

簡単な答え: appID を修正してください。CLIENT-ID の最初の部分です。つまり、クライアント ID が の1088706429537-4oqhqr7o826ditbok23sll1rund1jim1.apps.googleusercontent.com場合、APP_ID は 1088706429537 です。最初はプロジェクト ID と混同し、問題が発生しました。

主な問題を無視しているため、受け入れられたものはすべて間違っているため、新しい回答を開始しました。MIME タイプを完全にカスタムなものに変更するようにアドバイスしているのかもしれません。それでも、最も人気のある答えは

mimeType rtclient.REALTIME_MIMETYPE でファイルを作成し、mimeType rtclient.REALTIME_MIMETYPE+ "."+realTimeOptions.appId のファイルを探しています

これは当然のようですが、間違った事実です。トピックの作成者はデモを正しく再現しています。Google のデモはまさにそれを行っているようです。application/vnd.google-apps.drive-sdk ファイルを作成し、appid で展開されたものを探します。REALTIME_MIMETYPE= ファイルを作成するたびに、Google ドライブはサイレントにファイル タイプを修正するため、これは実際には正しいです。application/vnd.google-apps.drive-sdk! .APP_ID で展開します。これは、他の回答が提案するように、MIME タイプをカスタマイズする必要がないことも意味します。application/vnd.google-apps.drive-sdk に進むことができると思います。私はチェックしました: いくつかの文字のつづりが間違っていれば、Google はあなたの MIME タイプを修正することさえあります。Google API は、リアルタイムのものとはあまりにも異なる場合にのみ、別の MIME タイプを使用します。しかし、これが意味する違いについて知らないため、これが他のすべての受け入れられた回答によって「解決策」として提案されているにもかかわらず、これが正しいことであるかどうかはわかりません。それにもかかわらず、

結び付けるためapplication/vnd.google-apps.drive-sdkに、提案されたカスタム型の代わりに使用する理由は次のとおりです。

  1. この標準タイプは、カスタム タイプではなく、Google がリアルタイム プレイグラウンド デモで提案しています。
  2. Google では、このタイプを「REALTIME_MIMETYPE」と呼んでいます。別のものを使用する場合は、Realtime API を使用して非リアルタイム ファイルを作成します。少なくとも、グーグルが提案するほどリアルタイムではありません。
  3. 別の MIME タイプを指定しても、Google はそれを REALTIME_MIMETYPE に修正します。これは、カスタム MIME タイプが歓迎されないことを意味します。
  4. カスタマイズの支持者は、これについて何も理解していません。彼らは、Google の公式の例をあえて「ばかげている」と笑うことさえあります。彼らは基本的に、彼らを信用してはいけないと言っています。
于 2015-01-25T06:28:09.867 に答える
1

Androidフォーラムで答えを見つけました。このmimeTypeでファイルを作成する必要がありました:

REALTIME_MIMETYPE = 'application/vnd.google-apps.drive-sdk.'+appID;

ビューで同じ mimeType を使用します。

  view.setMimeTypes(REALTIME_MIMETYPE);
于 2013-07-30T00:46:42.800 に答える