Facebook第三方登录

您所在的位置:网站首页 Facebook登录受限制 Facebook第三方登录

Facebook第三方登录

2024-01-13 20:55| 来源: 网络整理| 查看: 265

1.集成并测试facebook 1.注册开发者账号

登陆facebook开发者平台 (https://developers.facebook.com/), 注册facebook开发者账号。

2.创建应用 1.点击 (https://developers.facebook.com/) 右上角的My Apps按钮,在弹出的下拉菜单中,选择Add a New App。 2.选择iOS平台 3.输入APP的名称,选择Create New Facebook App ID 4.选择APP类别,点击创建应用编号。 3.下载SDK

在该界面中点击按钮下载SDK,或者在 https://developers.facebook.com/docs/ios中下载iOS平台的SDK。

4.配置APP在facebook中的信息 1.点击右上角My Apps,进入Dashboard界面。 此时可以看到AppID和AppSecret,记住这两个值,之后要用到。(如果AppSecret是加密的话,点击旁边的show即可看到值) 2.点击Dashboard左边的Settings选项,点击+ Add Platform。

3.选择iOS平台。

4.输入Bundle ID。 5.设置Single Sign(单点登录)为on。 6.选择是否打开自动记录 iOS 应用内购买事件(选填) 7.点击保存Save Changes

4.集成SDK到XCode中 1.在项目中新建名称为Frameworks的Group。 2.打开下载的SDK的目录 ~/Documents/FacebookSDK, 并拖拽 Bolts.framework FBSDKCoreKit.Framework, FBSDKLoginKit.Framework, FBSDKShareKit.Framework 到项目的Frameworks组中。在拖拽选项中选择Copy items if needed和Create groups。 5.配置Xcode工程

右键点击Info.plist文件,选择Open As Source Code。

5.1.设置URLSchemes 复制粘贴以下片段到XML的body中... CFBundleURLTypes CFBundleURLSchemes fb{your-app-id} FacebookAppID {your-app-id} FacebookDisplayName {your-app-name}

将 fb{your-app-id} 替换为 Facebook 应用编号,加上前缀 fb。例如,fb123456。您可以通过 Facebook 应用面板找到应用编号。

使用应用编号替换 {your-app-id}

使用您在应用面板中指定的显示名称替换 {your-app-name}

5.2.Facebook加入网络白名单 iOS9要配置App Transport Security,把Facebook加入白名单,打开Info.plist,添加以下片段。 NSAppTransportSecurity NSExceptionDomains facebook.com NSIncludesSubdomains NSThirdPartyExceptionRequiresForwardSecrecy fbcdn.net NSIncludesSubdomains NSThirdPartyExceptionRequiresForwardSecrecy akamaihd.net NSIncludesSubdomains NSThirdPartyExceptionRequiresForwardSecrecy 5.3.设置应用跳转白名单 如果使用了facebook的登陆分享功能,需要跳转到facebook的APP,同样也要在.plist文件中处理一下。 LSApplicationQueriesSchemes fbapi fb-messenger-api fbauth2 fbshareextension 6.添加系统资源库

点击target->General->Linked Frameworks and Libraries,点击左下角的+号按钮,依次添加以下系统资源库

Security.framework libiconv.dylib SystemConfiguration.framework CoreGraphics.Framework libsqlite3.dylib CoreTelephony.framework libstdc++.dylib libz.dylib Accounts.framework 7.连接Application Delegate

在facebook登录或者分享过程中,会打开facebook APP或者跳转到Safari,此时要要连接AppDelegate和FBSDKApplicationDelegate。在AppDelegate.swift中添加以下代码:

#import - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; return YES; } - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation ]; }

swift版本

import FBSDKCoreKit import FBSDKLoginKit func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions) } @available(iOS 9.0, *) func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options) } // iOS8 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool { return FBSDKApplicationDelegate.sharedInstance().application(application, openURL: url, sourceApplication: sourceApplication, annotation: annotation) } 8.打开Keychain(很重要)

在 Xcode8 和 iOS 10 的情况下,还需要做一步操作,那就是打开Keychain。 在Xcode左侧导航栏最上面,点击“项目名称”,在右侧面板中选择Capabilities,在下面找到Keychain Sharing,点击ON按钮。

Keychain.png 9.添加应用程序事件(Events)(非必选)

当用户安装或者使用APP的时候,有些事件数据可以被统计,可以在facebook的分析面板中查看 (https://www.facebook.com/analytics?__aref_src=devsite&__aref_id=docs_ios_getting_started).

记录APP激活,在AppDelegate.m添加以下代码:

// AppDelegate.m #import - (void)applicationDidBecomeActive:(UIApplication *)application { [FBSDKAppEvents activateApp]; }

swift代码:

func applicationDidBecomeActive(application: UIApplication) { FBSDKAppEvents.activateApp() } 10.测试登陆 1.导入头文件

swift项目中,在桥接文件中添加导入头文件代码。如果是objc的话,在你的ViewController.m和Appdelegate.m中导入头文件。

#import #import 2.添加相应代码 1.在ViewController.swift中的viewDidLoad方法中添加以下代码: let loginBtn: FBSDKLoginButton = FBSDKLoginButton() loginBtn.center = self.view.center view.addSubview(loginBtn) 2.现在编译并运行你的APP,就可以看到facebook的登陆按钮。 Facebook登录按钮 3.点击登录按钮,就会跳转到登录界面: facebook登录页面 10.自定义登录按钮

大多数情况下,我们希望能够自定义facebook的登陆按钮,在按钮的点击事件方法中,写入以下代码:

/// 按钮监听方法 func facebookBtnClick() { // 打开 FBSDKProfile 自动追踪 FBSDKAccessToken FBSDKProfile.enableUpdates(onAccessTokenChange: true) // 清空FBSDKAccessToken FBSDKAccessToken.setCurrent(nil) // 登录 let loginManager: FBSDKLoginManager = FBSDKLoginManager() loginManager.logOut() // 先退出登录 loginManager.loginBehavior = .native // 优先客户端方式 loginManager.logIn(withReadPermissions: ["public_profile"], from: self) { (result, error) -> Void in guard let res = result else { return } if error != nil { print("Process error") } else if res.isCancelled { print("Cancelled") } else { // 获取userID和token print("userID: \(res.token.userID), token: \(res.token.tokenString)") print("FBSDKProfile.current(): \(FBSDKProfile.current())") } } }

如果想要进一步获取用户信息,比如用户名和头像等,需要添加通知,监听用户登录获取。

override func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver( forName: NSNotification.Name.FBSDKProfileDidChange, object: nil, queue: nil) { (Notification) in // 进一步获取用户信息 if let profile = FBSDKProfile.current() { print("profile.userID: \(profile.userID)") print("profile.name: \(profile.name)") let url = profile.imageURL(for: FBSDKProfilePictureMode.normal, size: CGSize(width: 200, height: 200)) print("url: \(url)") } } } /// 移除监听 deinit { NotificationCenter.default.removeObserver(self, name: NSNotification.Name.FBSDKProfileDidChange, object: nil) } 11. 登录评审

一般情况下,使用第三方登录,只需要****public_profile, email and user_friends****这三种权限就可以了,此时在app的设置页需要填写联系邮箱才能拥有这些权限。这种情况下,不需要facebook的审核,就可以使用了。

如果你的应用需要请求public_profile, email and user_friends之外的额外需求,在你发布应用之前,Facebook需要进行评审。

注意:只能是注册应用的开发者账号才能做分享,如果要所有的账号都可以使用的话,需要把注册的应用提交给facebook审核通过,至于如何审核,请看下面的审核流程!

参考 创建facebook应用参考:http://bbs.mob.com/thread-43-1-5.html facebook审核流程参考:http://bbs.mob.com/forum.php?mod=viewthread&tid=19104&page=1&extra=#pid40942


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3