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

  • 21
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

はじめに

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

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

XcodeへのSDK追加の手順が記載された画面が表示されます。
その支持に従っていろいろやっていけば基本的にできます。
ここを見るのが一番

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

Facebook SDKをインストール

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

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

もしくは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

Screen Shot 2014-11-26 at 14.08.37.png

  • 作成したHeader Fileに以下を追記。
#import <FacebookSDK/FacebookSDK.h>

build settings

Screen Shot 2014-11-26 at 13.34.13.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

コード

該当箇所を追記・変更

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

set class of button

Screen Shot 2014-11-26 at 14.23.26.png

Segue

Screen Shot 2014-11-26 at 14.24.12.png

Facebookアカウントのセット

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

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

反省

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

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