Google drive api Google Picker Api sizeBytes未定义
我们正在开发web应用程序和Google Drive之间的链接机制。我们向用户显示Google Picker,用户选择一个文件,我们通过$.post将所选文件链接到Picker回调中的数据。一切正常,我们能够在选择器回调中获取所选文件的id、名称、mimeType、url和大小字节 我们还希望我们的用户从Picker上传文件,除了一件事之外,它也可以正常工作。用户上传文件后,我们在Picker回调中成功获取data.docs对象,但这次“sizeBytes”字段未定义 我们是错过了什么还是做错了什么?为什么上传到Picker api后“sizeBytes”字段未定义 这就是我们创建Google Picker的方式Google drive api Google Picker Api sizeBytes未定义,google-drive-api,google-picker,Google Drive Api,Google Picker,我们正在开发web应用程序和Google Drive之间的链接机制。我们向用户显示Google Picker,用户选择一个文件,我们通过$.post将所选文件链接到Picker回调中的数据。一切正常,我们能够在选择器回调中获取所选文件的id、名称、mimeType、url和大小字节 我们还希望我们的用户从Picker上传文件,除了一件事之外,它也可以正常工作。用户上传文件后,我们在Picker回调中成功获取data.docs对象,但这次“sizeBytes”字段未定义 我们是错过了什么还是做错了
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....
});
}
}
}
函数选择器回调(数据){
if(data.action==google.picker.action.PICKED){
对于(var i=0;i
如果用户上载文件,“sizeBytes”未定义。我怀疑Picker没有在上载上指定
字段=*
。这意味着上载响应将仅为最小的文件属性。您需要执行一个files.get(id)&fields=*
还要注意的是,任何谷歌文档(文档、电子表格等)都没有大小 我怀疑Picker没有在上传上指定
字段=*
。这意味着上载响应将仅为最小的文件属性。您需要执行一个files.get(id)&fields=*
还要注意的是,任何谷歌文档(文档、电子表格等)都没有大小 这就是正在发生的事情。您正在从
data.doc[0]
对象访问“sizeBytes”(实际上是fileSize
)属性,但其中没有此类属性。如果您使用console.log()访问该对象,则可以访问以下属性:
{id: "dfdsafdsafdsafdsafM", serviceId: "docs", mimeType: "image/png", name: "IMAGE.png", description: "", …}
description
downloadUrl
driveError
driveSuccess
iconUrl
id
isNew
lastEditedUtc
mimeType
name
serviceId
type
uploadId
uploadState
url
列表中没有大小字节(
fileSize
),因此您得到的是未定义的。如果要访问fileSize
属性,需要使用中提到的。那份工作我的朋友,我将留给你。我已经完成了调试部分。这就是正在发生的事情。您正在从data.doc[0]
对象访问“sizeBytes”(实际上是fileSize
)属性,但其中没有此类属性。如果您使用console.log()访问该对象,则可以访问以下属性:
{id: "dfdsafdsafdsafdsafM", serviceId: "docs", mimeType: "image/png", name: "IMAGE.png", description: "", …}
description
downloadUrl
driveError
driveSuccess
iconUrl
id
isNew
lastEditedUtc
mimeType
name
serviceId
type
uploadId
uploadState
url
列表中没有大小字节(fileSize
),因此您得到的是未定义的。如果要访问fileSize
属性,需要使用中提到的。那份工作我的朋友,我将留给你。我已经完成了调试部分。如何获取“sizeByte”元数据?首先获取的是响应吗?@noogui我编辑了我的问题您如何获取“sizeByte”元数据?在第一个要获取的位置有响应吗?@noogui我编辑了我的问题谢谢noogui事实上我已经尝试了files.get,但上传后大小再次为空。如果我从Picker上传一个文件,关闭并重新打开它,然后选择上传的文件,那么我可以获得大小字节。但刚完成上传过程,我就没什么运气了。顺便说一句,如果我使用files.get获取Google Drive中已有的文件,它工作正常,我可以获取大小。我想@pinoyyid指出的是对的,问题的原因是从Picker Api上传文件…谢谢noogui实际上我已经尝试了文件。上传后立即获取,但大小再次为空。如果我从Picker上传一个文件,关闭并重新打开它,然后选择上传的文件,那么我可以获得大小字节。但刚完成上传过程,我就没什么运气了。顺便说一句,如果我使用files.get获取Google Drive中已有的文件,它工作正常,我可以获取大小。我猜@pinoyyid指出的是对的,问题的原因是从Picker Api上传文件。。。