这方面网上已经有很多优秀的文章了, 这里简单介绍一下, 我做的大致流程以及遇到的问题, 希望能给求索中的你一些帮助
第一步: 注册友盟账号,添加新的应用,获取友盟Appkey和AppSecret
具体请看史上最详细集成友盟第三方登录流程这位大神已经写得够详细了,接下来说一下三种方式的大致流程
第二步: 去微信开放平台, 微博开放平台, 腾讯开放平台这三个地方注册账号, 获取对应的Appkey和AppSecret, 有一点要注意, 这三种平台上的BundleID要一致, 和Xcode上的保持一致, BundleID的命名规则是com.yourCompany.yourAppname
第三步: 配置友盟SDK
- 两种方式,直接下载SDK拖进工程中,或者pod进去,这里建议直接pod进去, 可能是人品不好, 开始是拖进去的, 运行没问题, 打包时出现错误, 也没找到原因, 删除后重新pod进去就好了, pod的SDK有一个缺点就是把不需要的三方账号的配置也同时下载了, 文件比较大
- SDK pod进去后按照友盟官方的文档说明配置
第三方登录所需要的相关库文件、第三方APPID及相关配置都与分享完全一致,请直接参考分享对应文档配置
开发者无需关心access_token的有效性,使用我们的登录接口可以直接返回对应的用户资料,登录体系中只需要将这些用户资料(包括用户id)管理起来即可
所以按照友盟分享集成配置到 <1.4.3 配置URL scheme>, 这里不得不赞一下微信, 微信的Appid前面会加上wx两个字母, 这很便于友盟的配置和识别, 微博和QQ的得自己添加, 尤其是QQ, 要配置两个, 一个是 QQ + 转换成16进制的腾讯QQ互联应用appId, 一个是tencent + 腾讯QQ互联应用appId, 这两个不能少, 仔细看文档不会弄错的
URL scheme的配置
- 工程中的代码配置
这里按照友盟第三方登录集成 , 或者史上最详细集成友盟第三方登录流程进行配置, 填上第二步中获得的那几个Appkey和AppSecret, 对应好各自的平台即可, 这里有两个回调很重要,贴上代码
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ return [UMSocialSnsService handleOpenURL:url]; }
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ return [UMSocialSnsService handleOpenURL:url]; }
- 接下来适配IOS9
以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求
我们还要配置一下, 看这里适配IOS9
第四步: 登录成功, 页面跳转, 赋值
原本我以为这样就完了呢, 还是太年轻了, 啥也不说了, 继续改进吧, 这样能得到第三方的昵称, usid, token, iconURL等, 显示是没问题了, 但是它在后台还是没账号. 这个时候其实跟游客登录没什么区别, 还要继续往下走
第五步 用三方账号给APP注册一个后台账号
这里又分两种情况, 第一种获得的这个三方账号在后台没被绑定过, 就用获得的三方资料注册一个账号, 然后登录. 第二种是这个三方账号在后台已经被用户主动注册的主账号绑定了, 这样的话, 就不用注册了, 直接登录, 登录成功后显示主账号的信息, 这一系列的逻辑需要写后台的大哥支持, 现在感觉有一个能干的后台, ztm幸福!!!
网友评论