【发布时间】:2021-07-03 18:53:18
【问题描述】:
我使用带有服务帐户的 Google Sheets API 创建了一个电子表格,但是当我尝试使用 url 访问时我无法访问它,但出现访问错误。我也尝试了 set permissions.create 但我不知道如何找到包含此电子表格的文件(当我使用 url 中的电子表格的 id 时,我在 Google Drive API 上发现文件未找到错误)id。有没有办法公开电子表格(可能在创建时)?
这是我的创建电子表格函数
func createSpreadsheet(ctx context.Context, title string, creds []byte) (*GoogleSpreadsheet, error) {
srv, err := sheets.NewService(ctx, option.WithCredentialsJSON(creds))
if err != nil {
return nil, err
}
var (
prop = &sheets.SpreadsheetProperties{
Title: title,
}
sheet = &sheets.Spreadsheet{
Properties: prop,
}
)
resp, err := srv.Spreadsheets.Create(sheet).Do() //Create request is send
if err != nil {
return nil, err
}
gs := &GoogleSpreadsheet{
SpreadSheetID: resp.SpreadsheetId,
SpreadSheetName: title,
SheetID: resp.Sheets[0].Properties.SheetId,
SheetName: resp.Sheets[0].Properties.Title,
URL: resp.SpreadsheetUrl,
Service: srv,
}
mux.Lock()
defer mux.Unlock()
spreadsheets[gs.SpreadSheetID] = gs
return gs, nil
}
【问题讨论】:
-
来自
however I can't reach it when I try to reach with url I get an access error,具体情况我无法理解。我为此道歉。可以问一下具体情况吗? -
请考虑提供您正在处理的代码的相关部分。当您调用
permissions.create时,您使用的是最初创建电子表格的同一帐户? -
@Tanaike 当然可以 :) ,我从我的代码中找到了由服务帐户创建的电子表格 url,我尝试使用此 url (docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxx/edit) 访问电子表格,但出现错误表示您需要访问。
-
@Iamblichus 你是对的我为此道歉,我添加了我的功能,你的问题的答案是我用我的主要 gmail 帐户做的,这是我的服务帐户的父帐户我不知道该怎么做它与服务帐户。看的不是很清楚,如果能得到帮助就更好了。
-
感谢您的回复。关于
I found spreadsheet url which is created by service account from my code and I tried to reach to spreadsheet with this url (docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxx/edit) and I get an error that says you need to access.,在这种情况下,您希望如何访问电子表格?
标签: go google-sheets google-sheets-api spreadsheet service-accounts