在 Go/ 中创建/更新 google 驱动器权限/ [使用 api 创建电子表格但无法访问它]

2024-06-18

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

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

[update:在字段中添加了父母,但有 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 includes fields which are not directly 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对于文件的权限。

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

Thanks!


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

Edit:

好像supportsAllDrives不再被弃用,至少现在是这样。在官方文档中找不到弃用说明,因此似乎仍然支持此功能。

另外,看着本文 https://cloud.google.com/blog/products/application-development/upcoming-changes-to-the-google-drive-api-and-google-picker-api,看来对共享云端硬盘的更改已被推迟:

编者注:由于当前发生的事件,Google 团队已决定避免在这个不确定的时期造成额外的干扰。因此,我们将无限期推迟有关共享云端硬盘选择加入机制的拟议更改。仅当请求设置了相关的选择加入参数时,才会返回共享云端硬盘和共享云端硬盘中的文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Go/ 中创建/更新 google 驱动器权限/ [使用 api 创建电子表格但无法访问它] 的相关文章

  • 重新插入通道导致死锁

    我有稳定的入站 作业 流 将其输入到无缓冲通道中 我有一个for range循环来迭代项目并处理它们 如果处理该项目失败 我会将项目重新插入通道中 以便稍后重试 问题是当我将项目重新插入通道时 它陷入僵局 我明白为什么会发生这种情况 处理器
  • 根据值匹配数组

    我使用以下代码来解析 yaml 并应得到输出为runners对象和函数build应更改数据结构并根据以下结构提供输出 type Exec struct NameVal string Executer string 这是我尝试过的 但我不知道
  • 在 Go/ 中创建/更新 google 驱动器权限/ [使用 api 创建电子表格但无法访问它]

    我正在尝试使用 google Drive api 和以下代码创建电子表格 但我无法访问它 update 该文件似乎不在我在这里指定的驱动器中 有人知道为什么会发生这种情况吗 update 在字段中添加了父母 但有 404 错误 说找不到文件
  • Go 编程语言中的“方法需要指针接收器”

    我刚刚看到了 Go 编程语言的演示 并想尝试写几行 一切工作正常 直到我尝试在这种情况下使用界面 我该如何解决这个问题 package main import fmt type entity float32 func e entity in
  • benchmem 的输出

    使用内存分析器运行基准测试时 我看到以下输出 SomeFunc 100 17768876 ns op 111 B op 0 allocs op 我不明白输出 0 allocs op 但分配了 111 B 知道这意味着什么吗 我的函数是否在堆
  • 为什么Golang无法从前面小写字符的struct生成json?

    我正在尝试打印我创建的结构体的 json 结果 如下所示 type Machine struct m ip string m type string m serial string 并打印出来 m Machine m ip test m t
  • 是否可以使用 go:generate 重定向 stdin/stdout

    我有一个充当管道的工具 它从标准输入读取数据并将源代码写入标准输出 是否可以设置输入 输出重定向并将此类工具与 go generate 一起使用 就像是 go generate tool lt file txt gt file go 我想出
  • 如何在 golang 中创建 .der 文件,与 openssl 相同

    openssl rsa in prevate pem outform DER pubout out public der 你可能会考虑像这样的图书馆google trillian https github com google trilli
  • Golang HTTP Post 错误:连接被拒绝

    我正在尝试向正在运行 PHP 应用程序的端口 8080 上的本地主机发送 post 请求 卷曲效果很好 curl data key asdf http localhost 8080 但在 Go 中我收到以下错误 Post http loca
  • 无法使用新的 Drive API 检索 Google Drive 文件和文件夹

    我正在尝试从我的 Android 应用程序获取 Google Drive 文件夹中的文件列表 但到目前为止尚未成功 我正在使用 google api drive v1 rev4 java 1 6 0 beta 和 google api cl
  • 如何捕获或抑制 Go(lang) 测试的 stdout?

    如何捕获或抑制标准输出以进行 Go 测试 我正在尝试自学 go lang 测试 在下面的代码中 myshow LoadPath 将大量信息打印到 stdout 这是正常的副作用 然而 当我运行 go test 时 它确实会产生非常嘈杂的输出
  • 如何发送包含 Blob 的 http 多部分 POST 请求?

    我正在使用 multipart XMLHttpRequest 在 Google Drive 帐户上上传文件 使用 google 文档中描述的语法 https developers google com drive web manage up
  • 如何使用“KeepRevisionForever”属性保留所有文件版本

    我最近使用 C 将文档加载到 Drive 但不知道 KeepRevisionForever 属性 现在我正在尝试上传文档的新版本 我正在尝试将此属性设置为true 但看起来它只会保留此属性以用于最新更新 即 我将上传到版本 5 但 Keep
  • 使用 google gdata 客户端 API 从 Java/Scala 进行 OAuth2 授权

    您将如何执行与 执行 OAuth 2 0 小节中的 Google Net 示例 https developers google com google apps spreadsheets 使用等效的 Java api 我尝试使用 Java a
  • 非本地包中的本地导入

    我知道应该避免本地进口 但在这种情况下有特殊情况需要 这是一个私人仓库 heroku buildpack 在go get 由于服务器上缺少私钥 与绝对 URL 一起使用时会出现此阶段 现在我得到这个错误local import in non
  • 解组此 xml 时遇到问题

    尝试了解如何在 Go 中解组 XML 通读多个示例和 stackoverflow 问题 我想要的是一个包含系统上安装的所有补丁的切片 我什至无法解组补丁 没有错误 只是一个空切片 可能做的事情基本上是错误的 提前感谢您的任何建议
  • 如何在Postgresql时间戳中存储Golang time.time?

    我可以知道如何存储time timePostgresql 中的对象 例如 SQL 查询 INSERT INTO UserAccount email login time VALUES email protected cdn cgi l em
  • http:多余的response.WriteHeader调用

    我有一个HandleFunc 如果成功的话 我希望 显然 能够 sent a 200回复 在回复中写一条信息性消息 但是以下代码片段 在快乐路径中执行 if fullRun w Write byte successMsg w WriteHe
  • 如何使用 Google Drive SDK 访问“与我共享”根列表?

    在Google Drive SDK文档中 我不知道如何访问root其他人与我共享的文件 文件夹列表 知道吗 我尝试搜索不属于我的文件 这意味着使用以下参数查询文件 列表 q not me in owners 但这会返回其他人拥有的所有文件
  • Golang 处理数据库连接的“最佳实践”

    我有一个用 Go 编写的 Web 服务 目前我有一个全局包 我可以在任何地方导入它 其中包含与 MongoDB 的连接 通过 MGO 但我不得不说 这对我来说感觉非常恶心 在 Go 中维护与数据源的连接的最佳实践是什么 我来自 PHP 世界

随机推荐