Включить «Открыть файл» из Google Диска API - RealTime API

Следуя примеру 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: одна (из) вещей, которые я не уверен, правильно ли я устанавливаю appID. Посмотрев в консоли API, я не нашел ни одного атрибута с таким именем, поэтому попытался использовать идентификатор проекта и название продукта.

Обновить

Добавив google.load('picker', '1'); внутри моей страницы index.html это сработало. Хотя этот код не существует на игровой площадке в реальном времени, поэтому я не уверен, зачем мне его использовать.


person Giannis    schedule 28.06.2013    source источник


Ответы (1)


Ознакомьтесь с этой документацией об интеграции Google Picker с Диском. google.load('picker', '1'); Имеется полный исходный код интеграции js.

person JunYoung Gwak    schedule 01.07.2013
comment
Я прочитал вышеуказанную документацию. Если вы заметили обновление, я спрашиваю, почему требуется google.load, поскольку он не включен в rt-playground, который также использует Picker. github.com/latusaki/realtime-playground - person Giannis; 01.07.2013
comment
Он действительно делает этот вызов: github.com /googledrive/realtime-playground/blob/master/js/ - person Cheryl Simon; 06.07.2013