Я пытался сделать это около двух дней, и, к сожалению, я не понимаю этого API или не могу перевести документацию с одного языка на другой.Любые способы, которыми я пытаюсь выполнить POST-запрос для листов Google с помощью Swift 4.
До сих пор я успешно выполнял GET-запрос.с этим кодом:
private let scopes = [kGTLRAuthScopeSheetsSpreadsheets, kGTLRAuthScopeSheetsDrive]
private let service = GTLRSheetsService()
let signInButton = GIDSignInButton()
let output = UITextView()
var requestType = ""
func gIDPrepare(){
// Configure Google Sign-in.
GIDSignIn.sharedInstance().delegate = self
GIDSignIn.sharedInstance().uiDelegate = self
GIDSignIn.sharedInstance().scopes = scopes
GIDSignIn.sharedInstance().signInSilently()
// Add the sign-in button.
view.addSubview(signInButton)
}
//GET request for specific tab
//grab the hash and store it
func professorGET(){
requestType = "PG"
gIDPrepare()
}
public func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error!) {
if let error = error {
showAlert("problem", message: "Authentication Error", action: error.localizedDescription)
self.service.authorizer = nil
} else {
self.signInButton.isHidden = true
self.output.isHidden = false
self.service.authorizer = user.authentication.fetcherAuthorizer()
switch requestType {
case "SG":
getCells(cellRange: "A1:B")
case "PG":
getCells(cellRange: "SHA!B3:B3")
case "PP":
postCells(range: "Test!A1:D1")
default:
print("something wrong happened")
}
}
func getCells(cellRange:String) {
output.text = "Getting sheet data..."
let spreadsheetId = "sheetid"
let query = GTLRSheetsQuery_SpreadsheetsValuesGet.query(withSpreadsheetId: spreadsheetId, range:cellRange)
service.executeQuery(query, delegate: self, didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:))
)
}