1:在info.plist里填写fbid 和fb对应的url scheme

2:ios9填写白名单如下:

<key>LSApplicationQueriesSchemes</key><array><string>fbapi</string><string>fb-messenger-api</string><string>fbauth2</string><string>fbshareextension</string></array><key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/><key>NSExceptionDomains</key><dict><key>akamaihd.net</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>facebook.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>fbcdn.net</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict></dict></dict>

3:连接应用程序委托

要对 Facebook 登录或 Facebook 对话(或需要切换至原生 Facebook 应用程序或 Safari 的任何操作)的结果进行后置处理,您需要将 AppDelegate 连接到 FBSDKApplicationDelegate。在 AppDelegate.m 中添加:

//  AppDelegate.m
#import <FBSDKCoreKit/FBSDKCoreKit.h>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {[[FBSDKApplicationDelegate sharedInstance] application:applicationdidFinishLaunchingWithOptions:launchOptions];return YES;
}- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {return [[FBSDKApplicationDelegate sharedInstance] application:applicationopenURL:urlsourceApplication:sourceApplicationannotation:annotation];
}

4:定义fb登陆

4.1用系统的

#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>// Add this to the body
@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init];// Optional: Place the button in the center of your view.loginButton.center = self.view.center;
//<span data-click-area="main"></span>Facebook“登录”按钮的读取权限
<span data-click-area="main"></span><pre style="" class="_5s-8 prettyprint lang-code prettyprinted"><span class="pln">loginButton</span><span class="pun">.</span><span class="pln">readPermissions </span><span class="pun">=</span><span class="pln"> </span><span class="pun">@[@</span><span class="str">"public_profile"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">@</span><span class="str">"email"</span><span class="pun">,</span><span class="pln"> </span><span class="pun">@</span><span class="str">"user_friends"</span><span class="pun">];</span>

[self.view addSubview:loginButton];} @end 代理:<FBSDKLoginButtonDelegate>

- (void)loginButton:(FBSDKLoginButton *)loginButton
didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result
              error:(NSError *)error{

NSString * fbId =result.token.userID;
    NSLog(@"token:%@",result.token);
    NSLog(@"%@",result.token.userID);
    NSLog(@"%@",result.grantedPermissions);
    NSLog(@"%@,isCancelled:%zd",result.declinedPermissions,result.isCancelled);

}

4.2自定义登陆
- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.UIButton *myLoginButton=[UIButton buttonWithType:UIButtonTypeCustom];myLoginButton.backgroundColor=[UIColor darkGrayColor];myLoginButton.frame=CGRectMake(0,0,180,40);myLoginButton.center = self.view.center;[myLoginButton setTitle: @"My Login Button" forState: UIControlStateNormal];// Handle clicks on the button[myLoginButtonaddTarget:selfaction:@selector(loginButtonClicked) forControlEvents:UIControlEventTouchUpInside];// Add the button to the view[self.view addSubview:myLoginButton];
}
-(void)loginButtonClicked
{
//定义形参(a,b)=^(实参c,实参d);实参是fb服务器返回来的
void(^loginHander)(FBSDKLoginManagerLoginResult *result, NSError *error) = ^(FBSDKLoginManagerLoginResult *result, NSError *error){if (error) {NSLog(@"Process error");} else if (result.isCancelled) {NSLog(@"Cancelled");} else {NSLog(@"Logged in");NSString * fbId =result.token.userID;NSLog(@"token:%@",result.token);NSLog(@"%@",result.token.userID);NSLog(@"%@",result.grantedPermissions);NSLog(@"%@,isCancelled:%zd",result.declinedPermissions,result.isCancelled);}};
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];[loginlogInWithReadPermissions: @[@"public_profile"]fromViewController:selfhandler:loginHander];
}

不解:换用新版的fbsdk登陆后,不管用户有没有安装fb的客户端,都只会登陆网页进行登陆

facebook登陆ios相关推荐

  1. 杀鸡儆猴!苹果撤销Facebook的iOS企业证书

    据外媒报道,自2016年以来,Facebook每个月向13至35岁的用户支付20美元的费用以让他们下载一款名为Facebook Research VPN的应用程序,并收集他们的个人数据如历史.位置信息 ...

  2. hellojs实现google+facebook登陆

    hellojs实现google+facebook登陆 传送门:hellojs in npm

  3. 一个软件网络连接异常_手机也能玩PC大作了,串流软件Steam Link登陆iOS App Store...

    去年V社发布消息宣布,将会推出一款全新的针对智能手机的Steam串流APP,而在近日这个名为Steam Link App终于正式登陆了iOS App Store.玩家可以通过手机和电脑连接,畅玩电脑上 ...

  4. 谷歌正式宣布其云游戏将以网页应用形式登陆iOS

    导读 近日,谷歌正式宣布其云游戏服务 Stadia 将以网页应用的形式登陆苹果 iOS 平台.此举旨在追随微软的脚步,以绕过苹果应用商店的限制. 谷歌表示,该公司始终在开发 Stadia 的网页应用版 ...

  5. 【Android】google plus、Facebook登陆sdk集成打包出aar的使用步骤

    本篇旨在记录aar包的使用步骤(关于aar的打包方法,如果有人需要的话我侯敏敏再补一篇): [arr打包方法:基本思路:在Android Studio中选择file-New Module-Androi ...

  6. ChatGPT正式登陆iOS平台

    6天前,ChatGPT在美区App Store中上架了官方App,累计下载量已经突破 50 万次,OpenAI 的 ChatGPT 应用在上架之后,其热度远超必应聊天等聊天机器人,以及其它使用 GPT ...

  7. 《经典食人花》windows经典桌面游戏食人花(吃花)登陆iOS,Android啦

    App Store:点我下载 Google Play:点我下载 百度盘直接下载APK:点我下载 pc原版下载(xp系统以下才能运行):点我下载 无聊做了一个小时候在win98上玩过的小游戏-食人花(吃 ...

  8. 第三方登陆实践之基于OAuth的FACEBOOK Web Login(最新版)

    第三方登陆实践之基于OAuth的FACEBOOK Web Login(最新版) Facebook 登录简介 Facebook登陆实践 1.首先,登陆[Facebook开发者平台](https://de ...

  9. iOS开发周报:新一代 iPhone 可能取消耳机插口,Facebook 发布 tvOS SDK

    新一代 iPhone 可能为进一步降低机身厚度而取消耳机插口,改用 Lightning 接口.iPhone 6c 传言,2016 年可能迎来两次 iPhone 发布会. 新闻 新一代 iPhone 可 ...

  10. Flutter集成Google、Facebook等第三方登陆完整流程

    前言 国内的登陆一般可以通过极光.友盟等这些第三方平台提供的sdk,实现一键接入.国外的就比较杂了,比如常用的 GitHub.Twitter.apple.Microsoft等, Google 提供了 ...

最新文章

  1. Java并发,volatile+不可变容器对象能保证线程安全么?!
  2. C++迟后联编和虚函数表
  3. 使用HMSegmentedControl实现分段控件
  4. Mongodb的update操作
  5. 从零开始nodejs系列文章
  6. php设置cookie值,PHP如何设置和取得Cookie值
  7. jsp,servlet交互驱动层实现
  8. 数据密集型应用系统设计--数据复制
  9. 计算机组成原理三个相关,计算机组成原理试题3
  10. QQ互联本地测试【QQ互联第一步】
  11. .doc文件不显示word图标
  12. URL.createObjectURL()方法
  13. 洋酒销售系统的设计与实现(附源码+资料+论文+截图+数据库)
  14. 用canvas画圆形图片
  15. 这篇文章让你实现时光机特效的操作
  16. 新媒体人必知的KOL投放策略
  17. 几大厂商的hypervisors比较分析
  18. Mysql的锁以及MVCC解决事务隔离级别
  19. 纯净IP地址--跨境人的爱恨情仇
  20. D3D渲染技术之纹理

热门文章

  1. Ping其他电脑ping不通的解决方法
  2. linux 脚本 过滤 词,linux学习之shell脚本 - 文本过滤
  3. idea的工具栏显示
  4. Exception in thread main java.lang.OutOfMemoryError: Java heap space(Java堆空间内存溢出)解决方法...
  5. 金山词霸划译功能对IDE的影响
  6. Linux鼠标断断续续,鼠标断断续续失灵该怎么办
  7. Maxwell参数化建模
  8. php下载太慢,迅雷下载速度慢的几种解决方法
  9. HW2021攻防演练经历碎碎念-见解
  10. 无线信道的特征——衰落通识介绍