[Swift 1.1] とりあえずFacebookログインをしてみる (Xcode 6.1)

# はじめに

ただの殴り書き備忘録ですので、荒いです。
storyboardを使っているので一部スクショだけのところもあります。


# ログイン用のFacebook アプリを作成する

XcodeへのSDK追加の手順が記載された画面が表示されます。
その支持に従っていろいろやっていけば基本的にできます。
[ここを見るのが一番](https://developers.facebook.com/docs/ios/getting-started?locale=ja_JP)

とりあえずAPP IDを控えておきます。

# Facebook SDKをインストール

ここから。
https://developers.facebook.com/docs/ios/getting-started?locale=ja_JP

~/Documents/FacebookSDK　に入ってます。

もしくはgitで。

```git
git clone git://github.com/facebook/facebook-ios-sdk.git
```

## Facebook SDKの取り込み

Xcode->Projectをクリック->General tab->"Linked Frameworks and Libraries"(下の方にある) -> click "+"->select "FacebookSDK.framework"

## import FacebookSDK

* 新しいHeader File作成

cmd+n -> ios -> source -> headerfile -> set group

![Screen Shot 2014-11-26 at 14.10.20.png](https://qiita-image-store.s3.amazonaws.com/0/18705/a3f87582-3e10-ebfb-5cc3-dc21914937b7.png)


![Screen Shot 2014-11-26 at 14.08.37.png](https://qiita-image-store.s3.amazonaws.com/0/18705/8a51f74e-c850-93bd-b6f8-80ba41eccd12.png)


* 作成したHeader Fileに以下を追記。

```swift
#import <FacebookSDK/FacebookSDK.h>
```


## build settings

![Screen Shot 2014-11-26 at 13.34.13.png](https://qiita-image-store.s3.amazonaws.com/0/18705/ff227de0-d109-5936-877b-be2395698d87.png)


* info.plistをいじる

plistはSupporting Files以下にあります。

作成したFacebookアプリのAPP IDを使います。

1. key = "FacebookAppID", type = String, value = your AppID
2. key = "FacebookDisplayName", type = String, value = your App Name
3. key = URL types = Array, dictionary-type child. That dictionary's child:   
key = URL Schemes, type = Array. The Array's child: type = String, value = "fb" + AppID

![Screen Shot 2014-11-14 at 14.27.47.png](https://qiita-image-store.s3.amazonaws.com/0/18705/8c1fde23-5428-86e0-af2c-9e1cfbab4884.png)

# コード

該当箇所を追記・変更

```swift:AppDelegate.swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    
    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        FBLoginView.self
        FBProfilePictureView.self

        func application(application: UIApplication, openURL url: NSURL, sourceApplication: NSString?, annotation: AnyObject) -> Bool {
            
            var wasHandled:Bool = FBAppCall.handleOpenURL(url, sourceApplication: sourceApplication)
            return wasHandled
            
        }
        
        return true
    }
```


```swift:ViewController.swift
    @IBOutlet var fbLoginView : FBLoginView!

    override func viewDidLoad() {
        super.viewDidLoad()

         self.fbLoginView.delegate = self
        self.fbLoginView.readPermissions = ["public_profile", "email", "user_friends"]

    }


    // Facebook Delegate Methods
    func loginViewShowingLoggedInUser(loginView: FBLoginView!) {

        println("User Logged In")

    }

    func loginViewFetchedUserInfo(loginView: FBLoginView!, user: FBGraphUser!) {

        println(user.name)

    }

    func loginViewShowingLoggedOutUser(loginView: FBLoginView!) {

        println("User Logged Out")

    }

    func loginView(loginView: FBLoginView!, handleError error: NSError!) {

    }
```

# Set Facebook Button(view)

![Screen Shot 2014-11-26 at 14.22.46.png](https://qiita-image-store.s3.amazonaws.com/0/18705/40a329b2-405a-0589-306a-e1496dfcdf70.png)

# set class of button

![Screen Shot 2014-11-26 at 14.23.26.png](https://qiita-image-store.s3.amazonaws.com/0/18705/289fd990-c7c7-51f4-f665-f4a1554d35c0.png)

## Segue

![Screen Shot 2014-11-26 at 14.24.12.png](https://qiita-image-store.s3.amazonaws.com/0/18705/ef6097d0-3774-da2c-06f0-d9d39a626c5c.png)

## Facebookアカウントのセット

iOS SimulatorのGeneralからFacebookアカを入力しておきます。

これでとりあえず動きます。



# 反省

途中から疲れて、適当な感じになってしまったのはごめんなさい。

todoアプリ　http://tech.camph.net/?p=363