Google 驱动器 REST API : file.getCreatedTime() returns 始终为空
Google Drive REST API : file.getCreatedTime() returns always null
我正在与 Android Quickstart for Google Drive Rest APi provided at the below link. Android Quickstart
合作
示例代码按原样运行良好。但是,当我尝试从 getCreatedTime()
或 GetWevViewLink()
等文件中获取其他详细信息时,会返回 'null'。只有 getName() 和 getId() returns 个值。
我认为您需要使用元数据 class 才能使用 getCreatedDate as indicated in Working with File and Folder Metadata。
然后尝试类似的操作:
ResultCallback<MetadataResult> metadataRetrievedCallback = new
ResultCallback<MetadataResult>() {
@Override
public void onResult(MetadataResult result) {
if (!result.getStatus().isSuccess()) {
showMessage("Problem while trying to fetch metadata");
return;
}
//show the date when file was created
Metadata metadata = result.getMetadata();
showMessage("File was created on " + metadata.getCreatedDate() );
}
}
Google Drive REST APIs v3 只会 return 某些默认字段。如果你需要一些字段,你必须通过 .setFields()
方法设置它来明确请求它。
像这样修改你的代码 -
private List<String> getDataFromApi() throws IOException {
// Get a list of up to 10 files.
List<String> fileInfo = new ArrayList<String>();
FileList result = mService.files().list()
.setPageSize(10)
// see createdTime added to list of requested fields
.setFields("nextPageToken, files(createdTime,id,name)")
.execute();
List<File> files = result.getFiles();
if (files != null) {
for (File file : files) {
fileInfo.add(String.format("%s (%s)\n",
file.getName(), file.getId()));
}
}
return fileInfo;
}
您可以在此处阅读有关此行为的更多信息 https://developers.google.com/drive/v3/web/migration
已更新 link https://developers.google.com/drive/api/v2/migration
引用上面link -
Notable changes
- Full resources are no longer returned by default. Use the fields query parameter to request specific fields to be returned. If left unspecified only a subset of commonly used fields are returned.
如果答案对您有用,请采纳,这样面临此问题的其他人也可能受益。
我正在与 Android Quickstart for Google Drive Rest APi provided at the below link. Android Quickstart
合作示例代码按原样运行良好。但是,当我尝试从 getCreatedTime()
或 GetWevViewLink()
等文件中获取其他详细信息时,会返回 'null'。只有 getName() 和 getId() returns 个值。
我认为您需要使用元数据 class 才能使用 getCreatedDate as indicated in Working with File and Folder Metadata。
然后尝试类似的操作:
ResultCallback<MetadataResult> metadataRetrievedCallback = new
ResultCallback<MetadataResult>() {
@Override
public void onResult(MetadataResult result) {
if (!result.getStatus().isSuccess()) {
showMessage("Problem while trying to fetch metadata");
return;
}
//show the date when file was created
Metadata metadata = result.getMetadata();
showMessage("File was created on " + metadata.getCreatedDate() );
}
}
Google Drive REST APIs v3 只会 return 某些默认字段。如果你需要一些字段,你必须通过 .setFields()
方法设置它来明确请求它。
像这样修改你的代码 -
private List<String> getDataFromApi() throws IOException {
// Get a list of up to 10 files.
List<String> fileInfo = new ArrayList<String>();
FileList result = mService.files().list()
.setPageSize(10)
// see createdTime added to list of requested fields
.setFields("nextPageToken, files(createdTime,id,name)")
.execute();
List<File> files = result.getFiles();
if (files != null) {
for (File file : files) {
fileInfo.add(String.format("%s (%s)\n",
file.getName(), file.getId()));
}
}
return fileInfo;
}
您可以在此处阅读有关此行为的更多信息 https://developers.google.com/drive/v3/web/migration 已更新 link https://developers.google.com/drive/api/v2/migration
引用上面link -
Notable changes
- Full resources are no longer returned by default. Use the fields query parameter to request specific fields to be returned. If left unspecified only a subset of commonly used fields are returned.
如果答案对您有用,请采纳,这样面临此问题的其他人也可能受益。