登录
首页 >  Golang >  Go问答

在 Go/ 中创建/更新 google 驱动器权限

来源:stackoverflow

时间:2024-03-31 12:48:32 144浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《在 Go/ 中创建/更新 google 驱动器权限》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我正在尝试使用 google drive api 和以下代码创建电子表格,但我无法访问它。

[更新:该文件似乎不在我此处指定的驱动器中,有人知道为什么会发生这种情况吗?]

[更新:在字段中添加了父级,但出现 404 错误,表示找不到文件,如果有人知道原因,请提前致谢。]

func (dr *driveservice) createfile(driveid string, filename string, parents []string) (*drive.file, error) {
    file := &drive.file{
        driveid:  driveid,
        name:     filename,
        mimetype: mimetypespreadsheet,
        parents:  parents,
        
    }
    file, err := dr.googledriveservice.files.create(file).do()
    return file, err
}

所以我尝试使用此代码创建/更新权限,但出现此错误 error 403: the resource body contains fields which are not direct writable., fieldnotwritable

func (dr *driveService) CreatePermission(fileId string, permissionType string, permissionRole string) error {
    permissionToBeCreated := &drive.Permission{
        Type: permissionType,
        Role: permissionRole,
    }
    filePermission, err := dr.googleDriveService.Permissions.Create(fileId, permissionToBeCreated).Do()
    if err != nil {
        fmt.Printf("An error occurred creating permission for file: %v\n", err)
        return err
    }

    _, err = dr.googleDriveService.Permissions.Update(fileId, filePermission.Id,filePermission).Do()
    if err != nil {
        fmt.Printf("An error occurred: %v\n", err)
        return err
    }
    return nil
}

因此尝试删除第二个函数中的update部分,但文件的权限有nil

那么,有人知道如何解决这个问题吗?或者一般来说,我如何创建一个每个人都有链接可以访问的电子表格?

谢谢!


解决方案


通过在创建文件时将 supportAllDrives 设置为 true 修复了该问题。 然而,这应该已经被弃用,但不是在我的版本上。

编辑

看起来 supportsAllDrives 不再被弃用,至少目前是这样。在官方文档中找不到弃用说明,因此似乎仍然支持。

此外,查看 this article,似乎对共享云端硬盘的更改已被推迟:

理论要掌握,实操不能落!以上关于《在 Go/ 中创建/更新 google 驱动器权限》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>