编辑 Google 工作表时出错 Swift

Error Editing Google Sheets Swift

我正在尝试从 swift 中编辑 google 个工作表。我使用了 google 的原始 Quickstart 教程,但由于这是用于阅读电子表格,因此我不得不稍微编辑它以写入电子表格。

//Signing in as normal from the Google Quickstart



//This function is the one I edited, to write to the spreadsheet
func listMajors() {
    output.text = "Getting sheet data..."
    let spreadsheetId = "**********************"
    let range = "Sheet 1!A2"
    let valueRange = GTLRSheets_ValueRange.init()
    valueRange.values = [["Hello" as Any]]
    let query = GTLRSheetsQuery_SpreadsheetsValuesUpdate.query(withObject: valueRange, spreadsheetId: spreadsheetId, range: range)
    query.valueInputOption = "USER_ENTERED"
    service.executeQuery(query, delegate: self, didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:)))
}
func displayResultWithTicket(ticket: GTLRServiceTicket, finishedWithObject result : GTLRSheets_ValueRange, error : NSError?) {
    if let error = error {
        showAlert(title: "Error", message: error.localizedDescription)
        return
    }
    print(result)
}

它似乎对读取电子表格工作正常,但对写入电子表格无效。该应用程序启动,然后我收到一条错误警报:

很抱歉在 objective-C 中添加解决方案,但我认为您将能够管理转换

我今天遇到了同样的问题。 解决方法很简单,初始化GIDSignIn

的时候
// Configure Google Sign-in.
GIDSignIn* signIn = [GIDSignIn sharedInstance];
signIn.delegate = self;
signIn.uiDelegate = self;
signIn.scopes = [NSArray arrayWithObjects:kGTLRAuthScopeSheetsSpreadsheets, nil];
[signIn signInSilently];

注意范围值。在快速入门教程中,使用了 kGTLRAuthScopeSheetsSpreadsheetsReadonly。

罗曼