2013-06-28 4 views
3

Следуя примеру Realtime-Playground, я пытаюсь включить «открытый файл» в своем приложении. Авторизация работает корректно, а пустой файл создается на gDrive. код для создания всплывающего окна выбора файла не работает следующий код является частью RT-игровую площадку, и я использую тот же:.Включить «Open FIle» из API Google Диска - RealTime API

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') 

Whic h Я думаю, это правильное поведение. При нажатии кнопки после авторизации я получаю следующее сообщение об ошибке:

Uncaught TypeError: Cannot read property 'View' of undefined 

ошибка происходит из этой строки кода:

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

На моей странице index.html я добавил все сценарии которые используются на площадке rt-play, и поскольку авторизация работает, я думаю, проблема не вызвана этим. Любая обратная связь будет оценена.

This - мой код (используется для тестирования, но все же, обратная связь приветствуется).

Пс: Одна вещь (-а) Я не уверен, правильно ли я устанавливаю приложение. После просмотра в консоли API я не нашел никакого атрибута, названного так, поэтому я попытался использовать ID проекта и имя продукта.

Обновление

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

ответ

3

Пожалуйста, проверьте это documentation about integrating Google Picker with Drive. google.load('picker', '1'); Существует полный исходный код интеграции js.

+0

Я прочитал приведенную выше документацию. Если вы заметили обновление, я спрашиваю, почему требуется google.load, поскольку он не включен в rt-playground, который также использует использование Picker. https://github.com/latusaki/realtime-playground – Giannis

+1

Это действительно делает этот вызов: https://github.com/googledrive/realtime-playground/blob/master/js/rtpg.ui.js#L130 –