【发布时间】:2017-09-08 19:07:54
【问题描述】:
我们正在开发我们的网络应用程序和 Google Drive 之间的链接机制。我们向用户显示 Google Picker,用户选择一个文件,然后我们通过 $.post 将所选文件链接到 Picker 回调中的数据。一切正常,我们能够在 Picker 回调中获取所选文件的 id、name、mimeType、url 和 sizeBytes。
我们还希望我们的用户从 Picker 上传文件,它也能正常工作,除了一件事。用户上传文件,我们在 Picker 回调中成功获取 data.docs 对象,但这次“sizeBytes”字段未定义。
我们是否错过了什么或做错了什么?为什么在 Picker api 中上传后“sizeBytes”字段未定义?
这就是我们创建 Google Picker 的方式,
var view = new google.picker.View(google.picker.ViewId.DOCS);
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setAppId(appId)
.setOAuthToken(oauthToken)
.addView(view)
.addView(new google.picker.DocsUploadView())
.setLocale(pickerApiLocale)
.setMaxItems(5)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
编辑:
这就是我们获取回调数据的方式;
function pickerCallback(data) {
if (data.action == google.picker.Action.PICKED) {
for (var i = 0; i < data.docs.length; i++) {
var selectedDoc = data.docs[i];
var params = {
fileId: selectedDoc.id,
fileName: selectedDoc.name,
mimeType: selectedDoc.mimeType,
webViewLink: selectedDoc.url,
size: selectedDoc.sizeBytes,
};
$.post('myurl',params,function(){
some code here....
});
}
}
}
如果用户上传文件“sizeBytes”是未定义的。
【问题讨论】:
-
如何获取“sizeByte”元数据?是否首先要获取响应?
-
@noogui 我编辑了我的问题
标签: google-drive-api google-picker