2017-12-02 349 views
6

Gmail hesabımdan e-posta okumak için oAuth2.0 kullanıyorum. Ve işte benim kodLütfen kodu kopyalayın, uygulamaya geçin ve yapıştırın ama nerede?

oauthswift = OAuth2Swift(
      consumerKey: "242468529977-xxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com", 
      consumerSecret: "GfGVl_xxxxxxxxxxmjnAX", 
      authorizeUrl: "https://accounts.google.com/o/oauth2/auth", 
      accessTokenUrl: "https://accounts.google.com/o/oauth2/token", 
      responseType: "code" 
     ) 


     oauthswift?.allowMissingStateCheck = true 

     let _ = oauthswift?.authorize(
      withCallbackURL: URL(string: "urn:ietf:wg:oauth:2.0:oob")!, scope: "https://www.googleapis.com/auth/gmail.metadata", state: "", 
     success: { credential, response, parameters in 
      let parameters = Dictionary<String, AnyObject>() 
      // Multi-part upload 
      print(credential) 
      print(response) 


     }, 
     failure: { error in 
      print("ERROR: \(error.localizedDescription)") 
     } 
     ) 

ama izin izin sonra bana bu ekranı

enter image description here

gösteren ve diyor 'Bu kodu kopyalayıp uygulamaya geçin ve oraya yapıştırın.' ama kodun nereye yapıştırılacağını bilmiyorum.

+0

Jecky consumerSecret Handler yöntemi kullanmak olmalıdır: "", anahtar değerini kaldırın ve böylece benim için onun çalışmalarını deneyin –

cevap

3

Lütfen kodumu benimki ile güncelleyin ve anahtarımla anahtarınızı değiştirin.Pro'umu projemde OAuthSwift kütüphanesiyle değiştirin. Ayrıca projenize URL Türü Şemaları eklemeyi unutmayın. ve Editör olarak Yap Rolü

let kClientID = "" 

func doOAuthGoogle(){ 
     let oauthswift = OAuth2Swift(
      consumerKey: kClientID, 
      consumerSecret: "", 
      authorizeUrl: "https://accounts.google.com/o/oauth2/auth", 
      accessTokenUrl: "https://accounts.google.com/o/oauth2/token", 
      responseType: "code" 
     ) 
     // For googgle the redirect_uri should match your this syntax: your.bundle.id:/oauth2Callback 
     self.oauthswift = oauthswift 
     oauthswift.authorizeURLHandler = getURLHandler() 
     // in plist define a url schem with: your.bundle.id: 
     let _ = oauthswift.authorize(
      withCallbackURL: URL(string: "com.cearsinfotech.GmailAttachements:/oauth2Callback")!, scope: "https://www.googleapis.com/auth/gmail", state: "GMAIL", 
      success: { credential, response, parameters in 
       //    self.showTokenAlert(name: "Gmail", credential: credential) 
       print(credential.oauthToken) 
       let jsonDict = try? response?.jsonObject() 
       print("SUCCESS: \(jsonDict)") 
       print(parameters) 


       let _ = oauthswift.client.get("https://www.googleapis.com/gmail/v3/about", success: { response in 
        let jsonDict:NSDictionary = try! response.jsonObject() as! NSDictionary 
        print("SUCCESS: \(jsonDict)") 

        if let arrayMessages = jsonDict.value(forKey:"messages") as? NSArray{ 
         let dict = arrayMessages[2] as! NSDictionary 
         let id = dict.value(forKey: "id") as! String 

         let _ = oauthswift.client.get("https://www.googleapis.com/gmail/v1/users/me/messages/\(id)", success: { response in 
          let jsonDict:NSDictionary = try! response.jsonObject() as! NSDictionary 
          print("SUCCESS: \(jsonDict)") 

          if let payload = jsonDict.value(forKey: "payload") as? NSDictionary 
          { 
           print(payload) 



           if let parts = payload.value(forKey: "parts") as? NSArray 
           { 
            print(parts) 
            let partDict = parts[0] as! NSDictionary 
            if let body = partDict.value(forKey: "body") as? NSDictionary 
            { 
             print(body) 
            } 

           } 


          } 


         }, failure: { error in 
          print(error) 

         }) 

        } 


       }, failure: { error in 
        print(error) 

       }) 

     }, 
      failure: { error in 
       print("ERROR: \(error.localizedDescription)") 
       //code=4/pYAZQTq2Y5nz0g0hZSAC4wC3AuQLzdJlW6pVjjXDFHM# 
     } 
     ) 
    } 

Sen

//MARK:- Get URL - 

    func getURLHandler() -> OAuthSwiftURLHandlerType { 
     guard let type = self.formData.data?.handlerType else { 
      return OAuthSwiftOpenURLExternally.sharedInstance 
     } 
     switch type { 
     case .external : 
      return OAuthSwiftOpenURLExternally.sharedInstance 
     case .`internal`: 
      if internalWebViewController.parent == nil { 
       self.addChildViewController(internalWebViewController) 
      } 
      return internalWebViewController 
     case .safari: 
      #if os(iOS) 
       if #available(iOS 9.0, *) { 
        let handler = SafariURLHandler(viewController: self, oauthSwift: self.oauthswift!) 
        handler.presentCompletion = { 
         print("Safari presented") 
        } 
        handler.dismissCompletion = { 
         print("Safari dismissed") 
        } 
        return handler 
       } 
      #endif 
      return OAuthSwiftOpenURLExternally.sharedInstance 
     } 


    }