2017-12-02 4 views
6

Ich verwende oAuth2.0 zum Lesen von E-Mails aus meinem Google Mail-Konto. Und hier ist mein CodeBitte Code kopieren, zur Anwendung wechseln und dort einfügen, aber wo?

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)") 
     } 
     ) 

aber nachdem ich die Erlaubnis erlauben es zeigt mir diesen Bildschirm

enter image description here

und sagt ‚Bitte diesen Code kopieren und auf die Anwendung wechseln und dort einfügen.‘, aber ich weiß nicht, wo Code eingefügt werden soll.

+0

Jecky consumerSecret verwenden: "", geben Sie bitte Ihre Schlüsselwert entfernen und seine Arbeit für mich versuchen, so –

Antwort

3

Bitte aktualisieren Sie Ihren Code mit meinem und ersetzen Sie das Geheimnis durch Ihren Schlüssel. Ich benutze die OAuthSwift-Bibliothek in meinem Projekt. Vergessen Sie nicht, in Ihrem Projekt URL-Typschemas hinzuzufügen. und Make Rolle als Editor

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# 
     } 
     ) 
    } 

Sie müssen Handler Methode

//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 
     } 


    } 
Verwandte Themen