我的Google帐户中有几个日历,我想为此设置一个定期备份。
每个日历都有一个特定的.ics文件导出网址,例如https://calendar.google.com/calendar/exporticalzip?cexp=insert_long_string_of_characters
我想为每个日历提取每个导出链接,并使用某种脚本将文件导出到我的Google云端硬盘上的指定文件夹(而不是我的本地计算机)
这样的事情可能吗?
谢谢!
杰米
答案 0 :(得分:0)
要获取特定的导出URL,您可以使用方法'Files:get'按ID获取文件的元数据。在downloadUrl
下,exportLinks
包含(密钥)。检索文件元数据中提供的相应下载URL,然后使用下载URL检索实际文件内容或链接。
要下载文件,您需要对文件的资源网址发出授权HTTP GET
请求,并包含查询参数 alt = media
GET https://www.googleapis.com/drive/v2/files/0B9jNhSvVjoIVM3dKcGRKRmVIOVU?alt=media
Authorization: Bearer ya29.AHESVbXTUv5mHMo3RYfmS1YJonjzzdTOFZwvyOAUVhrs
private static InputStream downloadFile(Drive service, File file) {
if (file.getDownloadUrl() != null && file.getDownloadUrl().length() > 0) {
try {
HttpResponse resp =
service.getRequestFactory().buildGetRequest(new GenericUrl(file.getDownloadUrl()))
.execute();
return resp.getContent();
} catch (IOException e) {
// An error occurred.
e.printStackTrace();
return null;
}
} else {
// The file doesn't have any content stored on Drive.
return null;
}
}
有一些Google文档格式和受支持的导出MIME,请查看此文档:https://developers.google.com/drive/v2/web/manage-downloads#downloading_google_documents