【发布时间】:2013-06-28 18:20:57
【问题描述】:
按照 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 中使用的所有脚本,并且由于授权正在工作,我想问题不是由此引起的。任何反馈将不胜感激。
This 是我的代码(用于测试,但仍然欢迎反馈)。
附: 我不确定我是否正确设置了appID。在查看 API 控制台后,我没有找到任何这样命名的属性,所以我尝试使用项目 ID 和产品名称。
更新
通过添加 google.load('picker', '1');在我的 index.html 页面中它已经工作了。虽然这个代码在实时游乐场中不存在,所以我不知道为什么我需要使用它..
【问题讨论】:
标签: google-drive-api google-drive-realtime-api