swiftでfacebook認証を実装する手順まとめ2

はじめに

swiftでのfacebook認証を実装する手順 - とりあえずphpとか
こちらの続きになります。前回までで、Facebookでの設定やらxcodeの設定、SDKの準備まで完了したのであとは具体的にコードを書いていく形になります

また、今回実装する内容は以下です

  • Facebookログインボタンの設置(自分でデザインしたもの)
  • Facebookでのユーザid、メールアドレスの取得

あと、今時点でのFacebook SDKのバージョンは「4.1.0」です。

実装方法

import UIKit
class SampleViewController: UIViewController
{
    override func viewDidLoad() {
        super.viewDidLoad()

        // Facebookログインボタンを作る
        var buttonFacebookLogin = UIButton()
        buttonFacebookLogin.frame = CGRectMake(0,0,200,40)
        buttonFacebookLogin.setTitle("Facebookログイン", forState: UIControlState.Normal)
        buttonFacebookLogin.addTarget(self, action: "clickButtonFaceBookLogin:", forControlEvents: .TouchUpInside)
        self.view.addSubview(buttonFacebookLogin)
    }

    func clickButtonFaceBookLogin() {
        var fb: FBSDKLoginManager = FBSDKLoginManager()
        fb.logInWithReadPermissions(["email"], handler: {(result: FBSDKLoginManagerLoginResult!, error: NSError!) -> Void in
            if ((error) != nil) {
                // エラー
            } else if result.isCancelled {
                // キャンセル
            } else {
                var token = FBSDKAccessToken.currentAccessToken()
                if token != nil {
                    // ユーザーIDが取得できる
                    // token.userID

                    var graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil)
                    graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in
                        if ((error) == nil) {
                            // Emailが取得できる
                            // result.valueForKey("email") as! NSString
                        }
                    })
                }
            }
        })
    }
}

ちなみに「プロジェクト名-Bridging-Header.h」に以下の記述は必須になります

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>

ドキュメントにも実装方法書いてあったかと思いますが、
swiftでもこんな感じでいけました

以上です