2016-05-16 113 views
0

我無法讓Google日曆框架在我的iOS項目中編譯,因此我決定在從Google SignIn框架中獲取我的Oauth標記後手動構建請求。Google日曆API和HTTP標頭

我過去一天一直在牆上跑步。以下似乎不想提供我訪問,我不斷收到403錯誤。

func requestEvents() { 
    let email = GIDSignIn.sharedInstance().currentUser.profile.email.stringByAddingPercentEncodingWithAllowedCharacters(.URLHostAllowedCharacterSet()) 
    let token = GIDSignIn.sharedInstance().currentUser.authentication.accessToken 
    let urlString = "https://www.googleapis.com/calendar/v3/calendars/\(email!)/events?key=CalendarHelper.apiKey 

    let url = NSURL(urlString) 
    let request = NSMutableURLRequest(URL: url) 
    request.addValue("Bearer \(token!)", forHTTPHeaderField: "authorization") 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithRequest(request) { data, request, error in 
    print(NSJSONSerialization.jsonobjectwithdata(data, options: .PrettyPrinted)) 
} 

回答

0

花了整整一天的時間,我終於找到答案。

我使用Google API瀏覽器爲我自己的日曆信息發出請求,然後檢查與該請求一起發送的標頭。在谷歌產生的請求AUTH頭看起來是這樣的:

authroziation:「承載[tokenString]」

我能夠從我的最後期限出去後,我找到了這個網頁在OAuth規範。

https://tools.ietf.org/html/rfc6750#section-2