스위프트로 docomo의 OAuth SDK for iOS를 시도했습니다.두 번째

14504 단어 Xcode6SwiftiOS8
스위프트로 docomo의 OAuth SDK for iOS를 시도했습니다.그 1의 후속.
첫 번째 코드에 인증에 필요한 매개 변수를 썼어요.
텍스트 필드를 준비했습니다. 거기에 적힌 인자를 사용하여 인증할 수 있습니다.
ViewController.swift
import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

    //OAuthインスタンス用変数
    var oAuth: OAuth!

    /*
    OAuth認証に必要なパラメータと入力用TextField
    */
    //クライアントID
    var clientID = ""
    @IBOutlet weak var clientIDTextField: UITextField!
    //クライアントシークレット
    var secret = ""
    @IBOutlet weak var secretTextField: UITextField!
    //スコープ
    var scope = ""
    @IBOutlet weak var scopeTextField: UITextField!
    //リダイレクトURI
    var redirectUri = ""
    @IBOutlet weak var redirectUrlTextField: UITextField!

    /*
    OAuth認証成功時に取得できる情報
    */
    //アクセストークン
    var access_token  = ""
    //リフレッシュトークン
    var refreshtoken = ""
    //トークンの有効期限
    var expires_in = ""
    //トークンタイプ
    var token_type  = ""

    /*
    OAuth認証失敗時に取得できる情報
    */
    //エラーコード
    var error_code: Int = 0
    //エラーメッセージ
    var rror_message = ""
    //例外オブジェクト
    var cause: NSError!


    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }


    //改行ボタンが押されたらキーボードを閉じる
    func textFieldShouldReturn(textField: UITextField) -> Bool {

        textField.resignFirstResponder()
        return true
    }


    //認証ボタンが押された時の処理
    @IBAction func clickOauthButton(sender: AnyObject) {

        //各TextFieldに入力されたパラメータを取得
        clientID = clientIDTextField.text
        secret = secretTextField.text
        scope = scopeTextField.text
        redirectUri = redirectUrlTextField.text

        //OAuthインスタンス生成
        oAuth = OAuth()

        //OAuth認証に必要なパラメータを設定
        oAuth.setClientID(clientID)
        oAuth.setSecret(secret)
        oAuth.setScope(scope)
        oAuth.setRedirectUri(redirectUri)

        //OAuth 認証を開始
        oAuth.startAuth(self, onComplete: { (token) -> Void in
            //アクセストークンの取得
            self.access_token = token.accessToken
            //リフレッシュトークンの取得
            self.refreshtoken = token.refreshToken
            //トークンの有効期限の取得
            self.expires_in = token.expiresIn
            //トークンタイプの取得
            self.token_type = token.tokenType
            //認証結果アラート表示
            self.oAuthSucsses()

            /*
            //取得情報出力
            println("認証成功!")
            println("access_token: \(access_token)")
            println("refreshtoken: \(refreshtoken)")
            println("expires_in: \(expires_in)")
            println("token_type: \(token_type)")
            println("scope: \(scope)")
            */


            }) { (error) -> Void in
                //エラーコードの取得
                self.error_code = error.code
                //エラーメッセージの取得
                self.rror_message = error.localizedDescription
                //例外オブジェクトの取得
                self.cause = error.cause
                //認証結果アラート表示
                self.oAuthNotSucsees()

                /*
                //取得情報出力
                println("認証失敗!")
                println("error_code: \(self.error_code)")
                println("rror_messagself.e: \(self.rror_message)")
                println("cause: \(self.cause)")
                */
        }
    }


    /*
    認証結果アラート生成
    */
    //認証成功時
    func oAuthSucsses() {

        let alert = UIAlertController(title: "認証成功!", message: "認証に成功しました。", preferredStyle: UIAlertControllerStyle.Alert)
        let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)

        alert.addAction(okAction)
        presentViewController(alert, animated: true, completion: nil)

    }

    //認証失敗時
    func oAuthNotSucsees(){

        let alert = UIAlertController(title: "認証失敗!", message: "認証に失敗しました。", preferredStyle: UIAlertControllerStyle.Alert)
        let okAction = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)

        alert.addAction(okAction)
        presentViewController(alert, animated: true, completion: nil)
    }
}

이음매가 격렬한 흙을 놓아주십시오.
만약 이곳의 코드가 비교적 좋다고 지적해 주신다면 정말 감사합니다.

좋은 웹페이지 즐겨찾기