手机拍摄照片存至Google Drive指定文件夹及Picasa API技术问询
关于Picasa API停用问题与照片上传Google Drive的替代方案
嘿,先直接给你明确答案:是的,Picasa API以及Google Apps Script中的PicasaApp服务已经完全停止服务了。Google早在几年前就宣布弃用Picasa,转而全力推广Google Photos,所有和Picasa相关的旧API、服务都已经下线,所以你运行var albums = PicasaApp.getAlbums();才会出现“Object PicasaApp is not defined”的错误——这个服务已经不存在啦。
下面给你几个实用的替代方案,帮你实现手机照片上传到Google Drive指定文件夹的需求:
方案1:直接用Google Drive手机端自动上传(零代码首选)
这是最省心的方法,完全不需要写脚本:
- 打开Google Drive手机APP,进入「设置」-「备份」选项
- 选择你要备份的相册(可以是整个相机胶卷,也可以指定某几个相册)
- 在「备份位置」里选择你想要的目标文件夹,开启自动备份后,手机拍的照片会自动后台上传到指定Drive文件夹
- 优点:操作简单,全程自动同步,不用管任何技术细节
方案2:用Google Apps Script结合Google Photos API(适合脚本自动化场景)
如果你必须用脚本实现,可以改用Google Photos API来获取照片,再保存到Drive:
- 先去Google Cloud Console启用Google Photos API,创建好OAuth凭据(用于Apps Script的权限验证)
- 在Apps Script里编写代码,核心逻辑是:调用Photos API获取照片,下载后存入指定Drive文件夹。示例代码片段如下:
注意:需要在Apps Script的「项目设置」里勾选「显示"appsscript.json"清单文件」,然后在清单中添加必要的授权范围,比如function saveLatestPhotosToDrive() { // 替换成你的目标Drive文件夹ID const targetFolderId = "你的文件夹ID"; const targetFolder = DriveApp.getFolderById(targetFolderId); // 调用Google Photos API获取媒体项目(需提前配置OAuth权限) const apiResponse = UrlFetchApp.fetch('https://photoslibrary.googleapis.com/v1/mediaItems', { headers: { 'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() } }); const mediaItems = JSON.parse(apiResponse.getContentText()).mediaItems; // 遍历照片并保存到指定文件夹 mediaItems.forEach(item => { // 下载照片的原始内容 const photoBlob = UrlFetchApp.fetch(`${item.baseUrl}=d`).getBlob(); // 保存到Drive文件夹,用原文件名命名 targetFolder.createFile(photoBlob.setName(item.filename)); }); }https://www.googleapis.com/auth/photoslibrary.readonly和https://www.googleapis.com/auth/drive.file,否则会有权限错误。
方案3:用手机自动化工具自定义触发(适合个性化需求)
如果你不想写代码,但需要自定义触发逻辑(比如拍特定标签的照片才上传):
- 安卓用户可以用Tasker:创建一个任务,设置触发条件为“相机拍摄照片后”,然后添加“上传文件到Google Drive”的动作,指定目标文件夹即可
- iOS用户可以用Shortcuts:创建快捷指令,先添加“拍摄照片”动作,接着添加“保存到Google Drive”动作,选择好目标文件夹,还能设置成自动运行(比如打开相机时自动触发)
方案4:通过Google Photos间接同步到Drive
还有一种间接思路:
- 先让手机照片自动备份到Google Photos(这个默认功能很稳定)
- 在Google Photos里选中要同步的照片或相册,直接选择「保存到Drive」(部分版本支持一键导出);或者用Apps Script设置定时触发器,定期把Google Photos里的指定照片导出到Drive的目标文件夹,逻辑和方案2类似,只是触发方式改成定时执行
内容的提问来源于stack exchange,提问作者o_nerti
相关产品推荐
相关产品推荐

