使用Google Drive v2 PHP API获取文件列表遇方法未定义错误
解决Google_Service_Drive_FileList::getItems()未定义的问题
我之前也踩过这个坑!你碰到的其实是客户端库版本和官方示例不同步的问题,给你几个实用的解决方向:
1. 先确认客户端库版本
Google Drive PHP客户端库在迭代中,针对v2 API的FileList类方法做了调整:
- 早期版本的库用
getItems()来获取文件列表数组 - 新版本里这个方法被替换成了
getFiles()
你可以先查下自己安装的google/apiclient版本,执行这条命令:
composer show google/apiclient
2. 替换方法调用就能解决
如果是新版本的库,直接把报错的代码替换就行:
// 原来报错的代码 // $items = $files->getItems(); // 替换成下面的写法 $items = $files->getFiles();
之后遍历$items的逻辑和之前完全一致,就能正常拿到文件对象了。
3. 应急方案:直接访问对象属性
既然你用print_r($files)能看到预期的对象结构,也可以直接访问对应的属性:
- 新版本库对应属性是
files:$items = $files->files; - 要是你用的是旧版本但方法莫名失效,试试
$items = $files->items;
额外提醒:服务账号权限验证
虽然你已经能创建文件夹和上传文件,但如果获取列表时看不到预期内容,记得确认服务账号是否有目标文件夹的访问权限——服务账号的云端硬盘是独立空间,要访问个人账号的文件,得先把文件/文件夹共享给服务账号的邮箱哦。
内容的提问来源于stack exchange,提问作者Dave Torr
相关产品推荐
相关产品推荐

