转载:http://blog.csdn.net/pjk1129/article/details/8053165

这将对自己的客户端分享功能非常有用!类似的新浪微博也是同一个道理!

原贴地址:http://blog.csdn.net/wxq888/article/details/7905003

一 首先说明下

1:Facebook采用的时Oauth2.0授权

2: 说明下什么是sso

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。对于Facebook的移动应用接入来说,意思就是如果用户手机上安装了facebook官方客户端并登录了,那么我们写的应用,授权facebook时,就不需要输入用户名和密码了,程序里call下facebook打声招呼就行了。这个用户体验是不是很棒~国内的新浪微博好像也快推出sso了~

3:Facebook的sso说明:

a:要实现sso,Facebook客户端的版本要求3.2.3或更高版本。

b:如果用户手机里没有装Facebook客户端或者版本过底,那么SDK将打开safari浏览器,在浏览器中登陆后,skd可以利用safari浏览器的cookie中的access_token.

c:如果程序运行在一个不支持多任务的系统,sdk将弹出一个UIWebView,提示用户登录授权。个人关于Facebook sso的见解:sso用户体验很不错,关于第二点,调用safari浏览器来登录,我觉得很多国内用户都不用safari浏览器,所以这个代码可以在sdk中屏蔽调。如果用户没有装facebook官方客户端的话,就直接弹登录框了~不过国内由于需要翻墙才能上facebook,估计用户也不多,不知到国外用户用safari浏览器的多不多?还是有其他浏览器。

二:准备工作

下载Facebook ios sdk:官方下载地址:http://developers.facebook.com/ios/。官方现在得sdk版本已经是3.0.8了,应该差不了太多。我得sdk是两个月前下载得,我已上传倒csdn资源中,下载地址:http://download.csdn.net/download/wxq888/4522172

三:正式开始

1:把sdk目录下src目录文件导入到工程中

2:在AppDelegate中初始化Facebook对象 在appDelegate得头文件和m文件中加入下面得代码

#import "FBConnect.h"

Facebook *facebook;

@property (nonatomic, retain) Facebook *facebook;

@synthesize facebook;

facebook = [[Facebook alloc] initWithAppId:your asp id andDelegate:nil];

3:实现sso回调代码,也就是当应用程序委托Facebook官方客户端授权后,官方客户端要回调应用程序传回access token。在appDelegate中添加下面代码:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

return [self.facebook handleOpenURL:url];

}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

return [self.facebook handleOpenURL:url];

}

4:在Info.plist文件中增加sso回调url,以告诉Facebook官方客户端该调用谁。如图所示,回调地址格式是fb.your_app_id.需要修改为自己申请得appid。

5: 调用sdk api登录 AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; [[delegate facebook] authorize:permissions];

6:如果登录没有问题,就会回调Facebook.m得 (void)fbDialogLogin:(NSString *)token expirationDate:(NSDate *)expirationDate 这个函数,你需要在这个函数中处理授权成功代码。保存token值等操作。如果有错误会调用- (void)fbDialogNotLogin:(BOOL)cancelled 这个函数。

7:利用skd调用其他api。比如请求用户资料。 需要调用:[self requestWithGraphPath:@"me" andDelegate:self];。其他api具体需要调用哪个请参看官方文档。

IOS客户端接入FaceB,SSO授权相关推荐

  1. IOS客户端接入Facebook,SSO授权

    原贴地址:http://blog.csdn.net/wxq888/article/details/7905003 一 首先说明下: 1:Facebook采用的时Oauth2.0授权 2: 说明下什么是 ...

  2. iOS- 无处不在,详解iOS集成第三方登录(SSO授权登录无需密码)

    1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社交分享: http://www.cnblogs.com/qingche/p/3727559.html 可以 ...

  3. iOS无处不在详解iOS集成第三方登录(SSO授权登录无需密码)

    链接地址:http://www.it165.net/pro/html/201408/18884.html 1.前言 不多说,第三登录无处不在!必备技能,今天以新浪微博为例. 这是上次写的iOS第三方社 ...

  4. iOS之友盟简单分享(第三方)及sso授权问题

    一.友盟分享简单集成步骤: 1.注册友盟账号,申请友盟Appkey 2.下载并安装SDK 注意: 1>由于苹果审核政策需求,建议大家对未安装客户端平台进行隐藏,在设置QQ.微信AppID之后调用 ...

  5. 新浪微博Android客户端SSO授权认证缺陷

    从最近几年开始,做平台的公司都流行起Open API.这是一个非常好的理念,也受到广大开发者的欢迎.如今,开发一款软件,你可以很容易地集成微博.微信.人人网等流行社交媒介的分享功能,做一个社交应用变得 ...

  6. 微服务接入oauth2_SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法)...

    SpringCloud微服务实战系列(十九)Ouath2在真实场景中的应用之客户端接入(第一种写法) 一.概述 在<SpringCloud微服务实战系列(十七)Ouath2在真实场景中的应用之资 ...

  7. iOS13 sign in with Apple客户端接入遇到的一些问题

    公司项目需要接入sign in with Apple,花了几天时间,查看各种文档博客,最终完成接入. 客户端接入遇到的一些问题 1.首次登录时调用的代码: if (@available(iOS 13. ...

  8. IOS新浪微博开发--分享、授权登录

    一.准被工作 1.注册成为开发者,创建应用项目,获取APPkey 2.添加 SDK 文件到工程           将从 GitHub 上下载的 libWeiboSDK 文件夹添加至工程,其中包含 W ...

  9. 开源中国iOS客户端学习——(五)网络通信ASI类库(1)

    如今的应用大部分基予网络,在开源中国iOS客户端源码中关于网络通信方面用了三个类库,ASI和AFNetworking,还有一个苹果官方给出的Reachability用于检测当前网络状况,本文介绍当前用 ...

最新文章

  1. 使用姿势估计进行跌倒检测
  2. 正确删除ORACLE归档日志文件
  3. Leetcode - 347. Top K Frequent Elements(堆排序)
  4. SpringBoot 2.6.0发布:禁止循环依赖,还有哪些实用的更新?
  5. plsql连接oracle未找到oci,Plsql Developer连接Oracle时出现Could not initialize oci.dll解决方案...
  6. 使用 pylint 检测python代码质量(sonar-scanner调用pylint,然后数据交给sonar服务器)
  7. Dapr + .NET 实战(八)服务监测
  8. java 中的override overload 比较
  9. java公钥加密私钥解密过程_GPG加密解密过程
  10. 怎么重置blockinput的锁_OPPOA9锁屏密码忘了怎么办? OPPO忘记锁屏密码的解决办法...
  11. android退出app代码,Android应用退出代码各种方式
  12. ArrayList动态数组对象 c# 1231
  13. Java 线程池ThreadPoolExecutor的应用与源码解析
  14. error: Unable to find vcvarsall.bat
  15. 【读书笔记】IOS帝国-Apple Ⅱ/Mac/皮克斯/iPod/iTunes/iPhone/App Store/iPad,苹果教父:史蒂夫·乔布斯传_2020.02.15
  16. win7 蓝牙4.0 ble驱动_Android FrameWorkamp;HAL视频最新进度: 蓝牙更新6节(更新时间2019年3月27日)...
  17. springboot vue3 elementui plus点餐外卖系统源码
  18. PHP 获取微视无水印源地址_小红书无水印视频解析下载|小红书在线去水印|小红书视频解析API接口...
  19. NC65在日常开发中常用的代码写法
  20. 移动学习 AndroidStudio内存优化分析—hprof文件分析

热门文章

  1. 【C基础】11 指针与数组
  2. php删除头尾空,分享php中去除头尾空格的2种方法
  3. 吉林大学考研计算机系分数线,吉林大学考研计算机分数线相关交流问答贴 小木虫论坛-学术科研互动平台...
  4. 【Solved】syntax error near unexpected token done
  5. 神经网络常用术语(Updating)
  6. Kotlin笔记27--使用Intent传递数据
  7. 记录一下学习嵌入式的方法和小窍门
  8. Discuz! X搬家说明
  9. 使用LaTeX写数学公式
  10. CSR867x 之充电配置开发