• Home
  • iOS Dev
    • 開發記錄
    • 學習筆記
    • 程式解題
  • Cool App
  • Others
    • 3C科技
    • 閱讀思考
    • 網路極客
  • About
    • 關於
    • 更新誌
  • Contact
  • Search
LikeABossApp
我養霸個,霸個養我
Skip to content
  • Home
  • iOS Dev
    • 開發記錄
    • 學習筆記
    • 程式解題
  • Cool App
  • Others
    • 3C科技
    • 閱讀思考
    • 網路極客
  • About
    • 關於
    • 更新誌
  • Contact
  • Search
客製Facebook login按鈕(Swift)

客製Facebook login按鈕(Swift)

Posted by daoseng33 on 18 6 月, 2017 18 6 月, 2017 學習筆記
Home 學習筆記 客製Facebook login按鈕(Swift)
如何在GoDaddy添加PayPal付款方式與取得特殊優惠
Streaks vs. Productive 兩款習慣養成app
Posted by daoseng33 on 18 6 月, 2017 18 6 月, 2017 學習筆記

最近在實做facebook登入功能,發現網路上許多swift版本的教學(甚至包含facebook for developer內的文件…)都有點過時,

紀錄一下目前找到比較新的使用facebook login sdk方法:

1.前置作業:

上Facebook for developer建立專屬應用程式、使用cocoapod加入Facebook sdk與設定info.plist檔等等(這些都跟objc一樣)

2.在AppDelegate中加入/修改以下程式碼:

import FacebookCore
func applicationDidBecomeActive(_ application: UIApplication) {
        AppEventsLogger.activate(application)
    }
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
        return SDKApplicationDelegate.shared.application(app, open: url as URL!, options: options)
    }

3.在ViewController中加入/修改以下程式碼:

import FacebookLogin
import FacebookCore
override func viewDidLoad() {
        super.viewDidLoad()
    
        if let accessToken = AccessToken.current {
            fetchProfile()
        }
    }

自訂的facebook login按鈕

// Facebook login button action
    @IBAction func fbLoginAction(_ sender: UIButton) {
        let loginManager = LoginManager()
        loginManager.logIn([ .publicProfile,.email ], viewController: self) { loginResult in
            print(loginResult)
            
            self.fetchProfile()
        }
    }

取得使用者資料:包含email、姓名、性別、大頭照(大圖)

func fetchProfile(){
        //use picture.type(large) for large size profile picture
        let parameters = ["fields": "email,name,gender,picture.type(large)"]
        let request = GraphRequest(graphPath: "me", parameters: parameters, accessToken: AccessToken.current, httpMethod: .GET, apiVersion: FacebookCore.GraphAPIVersion.defaultVersion)
        request.start { (response, result) in
            switch result {
            case .success(let value):
                print(value.dictionaryValue!)
            case .failed(let error):
                print(error)
            }
        }
    }

透過以上步驟來使用Facebook SDK讓使用者登入並取得使用者資料~~

Share this:

  • 分享到 Twitter(在新視窗中開啟)
  • 按一下以分享至 Facebook(在新視窗中開啟)
  • 分享到 LinkedIn(在新視窗中開啟)
  • 分享到 Pocket(在新視窗中開啟)
  • 按一下即可以電子郵件傳送連結給朋友(在新視窗中開啟)

請按讚:

喜歡 正在載入...

相關

近期文章

  • 解決 CoreFoundation +[_CFXNotificationTokenRegistration keyCallbacks] 閃退問題
  • 解決 UITableView scrollToRow / setContentOffset 滑動到錯誤位置問題
  • Use RxTableViewSectionedAnimatedDataSource without animation
  • iOS Unit/UI Testing Checker 測試檢查器
  • 清除那該死的 Launch Screen Cache(Xcode 11)

分類

行事曆

2017 年 6 月
一 二 三 四 五 六 日
 1234
567891011
12131415161718
19202122232425
2627282930  
« 5 月   7 月 »

標籤雲

app (4) chatbot (1) cherry-pick (1) clang-format (1) cocoapods (2) coding style (1) core data (1) enum (2) Firebase (1) GA (1) GCD (2) git (3) GoDaddy (1) Google (1) GTM (1) habit (1) iOS (41) lazy variable (1) LeetCode (2) LINE (1) LINE TechPulse 2017 (1) merge (1) MVC (2) nike+ (1) NSLog (2) objc (4) objective-c (2) Productive (1) radius (2) runtastic (1) RxSwift (2) standford (3) storyboard (1) Streaks (1) subscript (1) Swift (32) Swift4 (2) TED (1) tools (4) UICollectionView (2) UIImage (3) UITableView (2) UITextField (4) Xcode (6) Xcode 8 (2)

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文
Back to Top
©2020 LikeABossApp
Powered by Anima & WordPress.
 

載入迴響中...
 

    %d 位部落客按了讚: