首页 >后端开发 >Golang >有没有办法使用 Golang 客户端库或 REST API 将协作者添加到 Google Sheet?

有没有办法使用 Golang 客户端库或 REST API 将协作者添加到 Google Sheet?

WBOY
WBOY转载
2024-02-09 11:54:21643浏览

有没有办法使用 Golang 客户端库或 REST API 将协作者添加到 Google Sheet?

php小编子墨在这里告诉你,要将协作者添加到Google Sheet,有两种方法可供选择:使用Golang客户端库或REST API。使用Golang客户端库,你可以通过调用Google Sheets API来添加协作者。而使用REST API的方法则是通过发送HTTP请求到Google Sheets API来实现。无论你选择哪种方法,都可以轻松地将协作者添加到你的Google Sheet中,以便与他人共享和编辑表格。

问题内容

我可以使用 gsheets 客户端库创建一个新的电子表格,下一步是将编辑器添加到新创建的工作表中,以便应用程序的用户可以访问该工作表

以下是创建工作表的代码:

ctx := context.background()

    srv, err := gsheets.newservice(ctx)
    if err != nil {
        log.printf("unable to retrieve sheets client: %v", err)
    }
    sp := &gsheets.spreadsheet{
        properties: &gsheets.spreadsheetproperties{
            title: groupname,
        },
    }

    spreadsheet, err := srv.spreadsheets.create(sp).do()
    if err != nil {
        return nil, err
    }

我搜索了 golang 客户端库文档和 rest api 文档,但找不到与添加协作者相关的任何内容

我期望有一些请求对象,允许我使用他们的电子邮件和角色添加协作者:

req := gsheets.Request{
        AddCollaborator: &gsheets.AddCollaboratorRequest{
            Email: "[email protected]",
            Role:  "editor",
        },
    }

    busr := &gsheets.BatchUpdateSpreadsheetRequest{
        Requests: []*gsheets.Request{&req},
    }

    res, err := srv.Spreadsheets.BatchUpdate(spreadsheetId, busr).Do()

或者至少我期望有一个 api 端点,我可以在其中实现相同的结果

我也很好奇是否有办法创建这个新的电子表格作为只读的公众?这至少可以让我继续开发

解决方法

可以使用 google.golang.org/api/sheets/v4 库添加编辑器。 您可以简单地创建一个电子表格:

func (r *spreadsheetsservice) create(spreadsheet *spreadsheet) *spreadsheetscreatecall

并添加具有编辑器类型的编辑器:

type Editors struct {
    ...
    // Users: The email addresses of users with edit access to the protected
    // range.
    Users []string `json:"users,omitempty"`
    ...
}

查看库文档了解更多详情。

以上是有没有办法使用 Golang 客户端库或 REST API 将协作者添加到 Google Sheet?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除