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:我不确定我是否正确设置appID的一件事。在查看 API 控制台后,我没有找到任何这样命名的属性,所以我尝试使用项目 ID 和产品名称。

更新

通过添加 google.load('picker', '1'); 在我的 index.html 页面中它已经工作了。尽管此代码在实时游乐场中不存在,但我不确定为什么需要使用它..

4

1 回答 1

3

请查看有关将 Google Picker 与 Drive 集成的文档google.load('picker', '1');有完整的js集成源代码。

于 2013-07-01T08:43:50.250 回答