简体   繁体   English

如何快速从Google Calendar API获取JSON?

[英]How to get JSON from google calendar API in swift?

What I want to do is sync the data from google calendar to my app. 我想做的是将数据从Google日历同步到我的应用程序。

I can login my app with google+ account now, then how can I get the private JSON data from calendar with my account ID and password? 我现在可以使用google +帐户登录我的应用,然后如何使用我的帐户ID和密码从日历中获取私人JSON数据?

Thanks in advance. 提前致谢。

I was able to retrieve JSON data via HTTP requests using Google Calendar API . 我能够使用Google Calendar API通过HTTP请求检索JSON数据。 As an example, here is a code snippet to make a request to retrieve my calendar metadata: 例如,这是一个代码片段,用于请求检索我的日历元数据:

let url = NSURL(string: "https://www.googleapis.com/calendar/v3/calendars/calendarId")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
    let dataAsNSString = NSString(data: data, encoding: NSUTF8StringEncoding)
    // implement your app logic
}
task.resume()

As far as syncing data between your app and Google Calendar, you can implement callbacks to make PUT requests to update via Google Calendar API. 至于在应用程序和Google日历之间同步数据,您可以实现回调以通过Google Calendar API发出要更新的PUT请求。 As an example, here is a code snippet for a callback function to make a PUT request to sync w/ your Google Calendar: 例如,这是一个回调函数的代码段,用于发出一个PUT请求以与您的Google日历同步:

func updateUserDataToGoogleCalendar(calendarId: String) {
    let url = NSURL(string:"https://www.googleapis.com/calendar/v3/calendars/calendarId")
    let dataAsString = "sync data"
    var data: NSData? = dataAsString.dataUsingEncoding(NSUTF8StringEncoding)
    var headers = Dictionary<String, String>()   // specify any headers

    Http().put(url!, headers: headers, data:data!) { (result) in           
    if result.success {
        if let json: AnyObject = result.jsonObject {
            // implement your app logic
        }
    }
}

There are numerous Swift HTTP wrapper libraries available. 有许多可用的Swift HTTP包装器库。 In my example, I am using Swift HTTP . 在我的示例中,我正在使用Swift HTTP

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM