使用PHP Google API客户端恢复Google Drive文件报错:untrash方法不存在(v2.12.1)
解决Google Drive API恢复回收站文件方法不存在的问题
问题原因
你参考的是Drive API v2的文档,但当前使用的google/apiclient: ^2.12.1版本默认集成的是Drive API v3。在v3版本中,untrash()方法已被移除,转而通过更新文件的trashed属性实现恢复操作。
解决方案(推荐使用API v3)
方法1:使用update方法更新文件属性
/* * @param Google\Service\Drive $service Drive API服务实例 */ $file = new Google\Service\Drive\File(); $file->setTrashed(false); $service->files->update($fileId, $file);
方法2:使用patch方法(更高效,仅更新指定字段)
/* * @param Google\Service\Drive $service Drive API服务实例 */ $file = new Google\Service\Drive\File(); $file->setTrashed(false); $service->files->patch($fileId, $file);
备选方案(使用API v2,不推荐)
若需继续使用v2版本的untrash()方法,需在初始化Drive服务时指定API版本:
// 初始化客户端后,指定v2版本创建服务 $service = new Google\Service\Drive($client, ['version' => 'v2']); // 调用v2的untrash方法 $service->files->untrash($fileId);
注意:Drive API v2已处于维护状态,官方推荐优先使用v3版本。
内容的提问来源于stack exchange,提问作者gvlasov
相关产品推荐
相关产品推荐

