2016-08-16 6 views
1

Ich versuche mit Google Tabellen API V4 und Swift 2.2 ein neues Google-Blatt zu erstellen. Ich hoffe, ein Rückgabeobjekt mit der SpreadsheetID zu erhalten. Ich möchte einen Titel angeben. Meine Vermutung ist, dass ich den URL-Parameter nicht korrekt formatiere. Vielen Dank im Voraus für alle, die helfen können!Wie erstelle ich ein neues Google-Blatt von Swift 2.2 mit Google Tabellen API V4?

import GoogleAPIClient 
import GTMOAuth2 
import UIKit 

class ViewController: UIViewController { 
    private let kKeychainItemName = "Google Sheets API" 

    private let kClientID = "blah-blahblahblah.apps.googleusercontent.com" 
    private let scopes = ["https://www.googleapis.com/auth/spreadsheets"] 
    private let service = GTLService() 

... 
... 
... 

func createNewSheet() { 
     print("Creating New Sheet ...\n") 
     let baseUrl = "https://sheets.googleapis.com/v4/spreadsheets" 
     let params = ["title": "NewSheet"] 
     let fullUrl = GTLUtilities.URLWithString(baseUrl,queryParameters: params) 

     service.fetchObjectWithURL(fullUrl, 
            objectClass: GTLObject.self, 
            delegate: self, 
            didFinishSelector: #selector(ViewController.displayResultWithTicket2(_:finishedWithObject:error:)) 
     ) 
    } 

    func displayResultWithTicket2(ticket: GTLServiceTicket, 
           finishedWithObject object : GTLObject, 
                error : NSError?) { 

     if let error = error { 
      showAlert("Error", message: error.localizedDescription) 
      return 
     } 

     print(object) 

     ... 
     ... 

Antwort

0

Um add a new sheet in Sheetsv4 verwenden:

POST https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId:batchUpdate 

URI Anfrage Körper:

{ 
    "requests": [ 
    { 
     "addSheet": { 
     "properties": { 
      "title": "Deposits", 
      "gridProperties": { 
      "rowCount": 20, 
      "columnCount": 12 
      }, 
      "tabColor": { 
      "red": 1.0, 
      "green": 0.3, 
      "blue": 0.4 
      } 
     } 
     } 
    } 
    ] 
} 

Wie dies in Swift tun?

Nutzen Sie HTTP-Anforderungen wie NSURL, NSURLRequest und NSURLSession oder NSURLConnection

Mit NSURLSession

initialisieren ein NSURL Objekt und ein NSURLSessionDataTask von NSURLSession. Führen Sie dann die Aufgabe mit resume() aus.

let url = NSURL(string: "http://www.stackoverflow.com") 

let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in 
    print(NSString(data: data!, encoding: NSUTF8StringEncoding)) 
} 

task.resume() 

Credits this thread für diesen Schnipsel.

Verwandte Themen