我正在使用实时API,我正在使用realtime-client-utils。
使用现有代码,我使用此方法创建实时文件:
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但没有找到文件。
有关如何修复过滤器的任何建议吗?
答案 0 :(得分:3)
您应该查找您创建的mimeType。
您使用mimeType rtclient.REALTIME_MIMETYPE
创建了文件,并且您正在查找使用mimeType rtclient.REALTIME_MIMETYPE+ "."+realTimeOptions.appId
的文件。这就是您没有获取任何文件的原因。
将filepicker代码更改为:
view.setMimeTypes(rtclient.REALTIME_MIMETYPE);
确保你改变
rtclient.REALTIME_MIMETYPE = 'application/{{YOURE_CUSTOM_MIMETYPE}}';
避免与其他应用发生冲突。
答案 1 :(得分:1)
在Android论坛上找到答案。我不得不用这个mimeType创建文件:
REALTIME_MIMETYPE = 'application/vnd.google-apps.drive-sdk.'+appID;
并在视图上使用相同的mimeType:
view.setMimeTypes(REALTIME_MIMETYPE);
答案 2 :(得分:1)
简短回答:correct your appID。它是您的CLIENT-ID的第一部分。也就是说,如果您的客户端ID为1088706429537-4oqhqr7o826ditbok23sll1rund1jim1.apps.googleusercontent.com
,则您的APP_ID为1088706429537.我最初将其与项目ID混淆并出现问题。
我开始给出新答案,因为所有被接受的答案都是错误的,因为他们无视主要问题。他们可能会建议将mime-type改为完全定制的东西。然而,most popular answer says
您使用mimeType rtclient.REALTIME_MIMETYPE和。创建了您的文件 你正在寻找mimeType rtclient.REALTIME_MIMETYPE +的文件 “” + realTimeOptions.appId
这似乎是自然而错误的事实。主题作者正确地再现了演示。 Google演示似乎就是这样做的:他们创建了application / vnd.google-apps.drive-sdk文件,并寻找appid-expanded文件。这是正确的,因为无论何时创建REALTIME_MIMETYPE = application/vnd.google-apps.drive-sdk
文件,Google云端硬盘都会默默修复文件类型!它使用.APP_ID扩展它。这也意味着您不需要像其他答案那样自定义您的mime类型。我想你可以继续使用application / vnd.google-apps.drive-sdk。我已经检查过:如果某些字母拼写错误,谷歌甚至会修复你的mime类型,这使得提议的定制更加困难。 Google API仅在与REALTIME版本太不相同时才会采用其他mime类型。但我不确定这是否正确,尽管所有其他公认的答案都是“解决方案”,因为我不知道这意味着什么。不过,
要使用application/vnd.google-apps.drive-sdk
代替建议的自定义类型,原因是: