You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel调用Google Drive API重命名文件夹报403 fieldNotWritable错误

解决Google Drive API重命名文件夹时的403权限错误

问题根源

你遇到的403错误是因为直接将完整的$folder对象传入files->update()方法,该对象包含了Google Drive API标记为只读的字段(比如createdTime、owners等),API会拒绝修改这些不可写字段的请求,从而抛出The resource body includes fields which are not directly writable错误。

可行解决方案

不要传入完整的文件夹对象,而是创建一个仅包含需要修改字段(这里是name)的精简版Google_Service_Drive_DriveFile对象,再调用更新方法:

示例代码

// 假设你已经获取到目标文件夹的ID $folderId
$newFolderName = "新的文件夹名称";

// 创建仅包含要修改字段的DriveFile对象
$updatedFolder = new Google_Service_Drive_DriveFile();
$updatedFolder->setName($newFolderName);

// 调用update方法,第一个参数是文件夹ID,第二个是精简后的对象
$googleDriveService->files->update($folderId, $updatedFolder);

额外优化(可选)

如果不需要返回更新后的完整文件夹信息,可以通过fields参数指定仅返回需要的字段,减少API响应数据:

$googleDriveService->files->update(
    $folderId,
    $updatedFolder,
    ['fields' => 'id,name'] // 只返回ID和名称
);

验证要点

  • 确认OAuth授权时已正确请求https://www.googleapis.com/auth/drive权限(你的配置已经包含,但如果之前授权时未更新权限,可能需要重新授权应用);
  • 确保目标文件夹ID正确,且当前授权用户拥有该文件夹的编辑权限。

内容的提问来源于stack exchange,提问作者Cedric Cholley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 00:53:24