官方网址: http://dev.umeng.com/social/ios/operation#2

一、注册友盟账号

登陆友盟官网,在我的产品页面添加新应用,然后获取到Appkey.

http://www.jianshu.com/p/be1f596090c7

二、申请第三方账号

1.新浪微博

登录新浪微博开放平台(点击链接),填写相关应用信息并上传icon图片。注意修改安全域名为sns.whalecloud.com 同时设置授权回调页为http://sns.whalecloud.com/sina2/callback 安全域名设置在应用信息-->基本信息.

新浪申请账号界面.jpg.png

授权回调页、取消授权回调页设置在应用信息-->高级信息.

新浪设置回调页.png
  • 安全域名的修改需要二次审核通过才生效,授权回调页修改即时生效.

    2.微信

    登录微信开放平台(点击链接),填写相关应用信息,审核通过后获取到微信AppID及AppSecret,如果需要微信登录功能,需要申请微信登录权限.

    3.QQ及Qzone

    QQ及Qzone使用同一个AppID及Appkey,登录腾讯开放平台(点击链接) ,选择移动应用,填写相关应用信息并提交审核,未审核前通过只能使用测试账号,添加测试账号方法如下: 选择用户能力-->进阶社交能力-->应用调试者,添加测试账号必须在申请者好友列表中.

    添加测试账号.png

    4.人人网

    登录人人开放平台(点击链接) ,填写相关应用信息,同时填写应用根域名为sns.whalecloud.com 具体位置: 基本信息-->应用根域名.

    人人网基本信息.png

    5.豆瓣

    登录豆瓣开放平台(点击链接),创建应用并填写相关应用信息,注意权限必须选择广播,同时填写回调地址为http://sns.whalecloud.com/douban/callback.

    豆瓣回调地址.png

    豆瓣api.png

    三、绑定第三方账号到友盟后台

    目前需要在友盟后台绑定的第三方账号为:新浪微博、腾讯微博、人人网、豆瓣、Qzone,其余平台如微信、QQ直接在代码中设置.
    绑定地址:http://umeng.com/apps
    登录友盟网站->左上角选择你们的产品->组件->社会化组件->设置.

    添加到Umeng后台.png

    1.短链接开关

    短链接开关只对新浪微博、腾讯微博、人人网、豆瓣四个平台有效,开启短链接开关,分享文案中附加的链接会被转码,同时可以统计到分享回流率(点击链接的次数),关闭短链接开关则无法统计,短链接开关默认为关闭状态.

    2.文字截断开关

    文字截断开关只对新浪微博、腾讯微博、人人网、豆瓣四个平台有效,同时只对使用自定义分享编辑页或没有分享编辑页用户有效,当分享文案超出字数限制时自动截断,开关状态默认关闭。

    四、适配iOS9系统

    在新发布的iOS9系统上围绕用户数据的安全性和体验新增了一些安全特性,同时也影响了应用的实现以及集成方式,为了保证良好的稳定性和体验,需要做如下处理:

    1.HTTP传输安全

    以iOS9 SDK编译的工程会默认以SSL安全协议进行网络传输,即HTTPS,如果依然使用HTTP协议请求网络会报系统异常并中断请求。目前可用如下两种方式保持用HTTP进行网络连接:
    A、在info.plist中加入安全域名白名单(右键info.plist用source code打开)

    <key>NSAppTransportSecurity</key>
    <dict><key>NSExceptionDomains</key><dict><key>log.umsns.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key><true/><key>NSTemporaryExceptionMinimumTLSVersion</key><string>TLSv1.1</string></dict><key>sns.whalecloud.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key><true/><key>NSTemporaryExceptionMinimumTLSVersion</key><string>TLSv1.1</string></dict><!-- 集成新浪微博对应的HTTP白名单--><key>sina.cn</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>weibo.cn</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>weibo.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>sinaimg.cn</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>sinajs.cn</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><key>sina.com.cn</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><!-- 新浪微博--><!-- 集成微信、QQ、Qzone、腾讯微博授权对应的HTTP白名单--><key>qq.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><!-- 腾讯授权--><!-- 集成人人授权对应的HTTP白名单--><key>renren.com</key><dict><key>NSIncludesSubdomains</key><true/><key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key><true/><key>NSThirdPartyExceptionRequiresForwardSecrecy</key><false/></dict><!-- 人人授权--><!-- 集成Facebook授权对应的HTTP白名单--><key>facebook.com</key><dict><key>NSIncludesSubdomains</key><true/>                <key>NSExceptionRequiresForwardSecrecy</key><false/></dict><key>fbcdn.net</key><dict><key>NSIncludesSubdomains</key><true/><key>NSExceptionRequiresForwardSecrecy</key><false/></dict><key>akamaihd.net</key><dict><key>NSIncludesSubdomains</key><true/><key>NSExceptionRequiresForwardSecrecy</key><false/></dict><!-- Facebook授权--><!-- 集成Twitter授权对应的HTTP白名单--><key>twitter.com</key><dict><key>NSIncludesSubdomains</key><true/>                <key>NSExceptionRequiresForwardSecrecy</key><false/></dict><!-- Twitter授权--></dict>
    </dict>

    注:以上部分平台官方未给出相应白名单,由技术人员测试各个平台所收集而来,如果有所遗漏,请自行加入并向客服说明,我们会进一步补充名单.
    B、在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求 http://dev.umeng.com/social/ios/ios9

    <key>NSAppTransportSecurity</key>
    <dict><key>NSAllowsArbitraryLoads</key><true/>
    </dict>

    2.应用跳转(SSO等)

    如果你的应用使用了如SSO授权登录或跳转分享功能,在iOS9下就需要增加一个可跳转的白名单,指定对应跳转App的URL Scheme,否则将在第三方平台判断是否跳转时用到的canOpenURL时返回NO,进而只进行webview授权或授权/分享失败.
    同样在info.plist增加:

    <key>LSApplicationQueriesSchemes</key>
    <array><!-- 微信 URL Scheme 白名单--><string>wechat</string><string>weixin</string><!-- 新浪微博 URL Scheme 白名单--><string>sinaweibohd</string><string>sinaweibo</string><string>sinaweibosso</string><string>weibosdk</string><string>weibosdk2.5</string><!-- QQ、Qzone URL Scheme 白名单--><string>mqqapi</string><string>mqq</string><string>mqqOpensdkSSoLogin</string><string>mqqconnect</string><string>mqqopensdkdataline</string><string>mqqopensdkgrouptribeshare</string><string>mqqopensdkfriend</string><string>mqqopensdkapi</string><string>mqqopensdkapiV2</string><string>mqqopensdkapiV3</string><string>mqzoneopensdk</string><string>wtloginmqq</string><string>wtloginmqq2</string><string>mqqwpa</string><string>mqzone</string><string>mqzonev2</string><string>mqzoneshare</string><string>wtloginqzone</string><string>mqzonewx</string><string>mqzoneopensdkapiV2</string><string>mqzoneopensdkapi19</string><string>mqzoneopensdkapi</string><string>mqqbrowser</string><string>mttbrowser</string><!-- 人人 URL Scheme 白名单--><string>renrenios</string><string>renrenapi</string><string>renren</string><string>renreniphone</string><!-- 来往 URL Scheme 白名单--><string>laiwangsso</string><!-- 易信 URL Scheme 白名单--><string>yixin</string><string>yixinopenapi</string><!-- instagram URL Scheme 白名单--><string>instagram</string><!-- whatsapp URL Scheme 白名单--><string>whatsapp</string><!-- line URL Scheme 白名单--><string>line</string><!-- Facebook URL Scheme 白名单--><string>fbapi</string><string>fb-messenger-api</string><string>fbauth2</string><string>fbshareextension</string>
    </array>
  • 注:以上部分平台官方未给出相应白名单,由技术人员测试各个平台所收集而来,如果有所遗漏,请自行加入并向客服说明,我们会进一步补充名单。

    3. 应用瘦身(App Thining)

    iOS9 SDK新增了对App瘦身的功能,详情见App Thining。目前各个第三方平台正在进行App thining的支持,所以为了正常使用第三方SDK及分享SDK,需要在Build Setting中将Enable bitcode关闭,或设置编译标识ENABLE_BITCODE=NO。

  • 注:bitcode仅在Xcode7以上显示并默认开启。

    五、下载并安装SDK

    1.使用cocoaPods

    如需使用CocoaPods 在Podfile中增加一行,内容如下:

    pod 'UMengSocial', '~> 5.0'

    然后执行安装即可

    pod install

    2.下载SDK

    http://dev.umeng.com/social/ios/sdk-download

    3.设置友盟apply

  • 获取友盟Appkey。如果你之前已经在友盟注册了应用,获得了Appkey,可以继续使用之前获得Appkey.
  • 如果你尚未在友盟注册账号,需要先注册,注册之后登录你的账号,点击添加新应用,完成新应用填写之后,将进入应用管理页面。在该页面就能得到Appkey.
  • 在代码中设置你的友盟Appkey,在 AppDelegate文件内设置你的AppKey:
#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{[UMSocialData setAppKey:@"your Umeng appKey"];// 用下面的代码打开我们SDK在控制台的输出后能看到相应的错误码[UMSocialData openLog:YES];
}

并添加下方的系统回调方法:

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options{return  [UMSocialSnsService handleOpenURL:url];
}

六、配置URL schemes

1.为什么要配置 URL schemes

URL schemes 和跳出应用后返回应用的逻辑相关,因此如果使用了SSO授权功能或QQ、微信、webview方式的Facebook,就必须配置URL schemes,否则跳出应用后将无法返回.

2. 如何设置 URL schemes

在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,则需要在plist文件中添加。获取各个平台appkey或者appid的方法可以参考分享详细文档绑定各个平台部分,各个平台的url scheme格式如下表:

平台 url scheme设置格式  
新浪微博 “wb”+新浪appkey,例如“wb126663232”  
微信 微信应用appId,例如“wxd9a39c7122aa6516”  
人人网 “rm”+你的应用bundle id,例如“rmcom.umeng.SocialSDK”  
QQ、QQ空间 需要添加两个URL schemes 1. “QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”。生成十六进制方法:点击链接。2.“tencent“+腾讯QQ互联应用Id,例如“tencent100424468"  
来往 Identifier填“Laiwang”,URL Schemes填来往AppId.注意使用来往SDK后,Xcode工程other linker flags需要添加-ObjC参数  
易信 易信Appkey,例如“yx35664bdff4db42c2b7be1e29390c1a06”  
Facebook 集成最新的Facebook SDK在iOS7.0以上有效,若要使用我们提供的facebook分享需要设置“fb”+facebook AppID,例如“fb1440390216179601”  

七、第三方登录

1.第三方登录概述

第三方登录主要用于简化用户登录流程,通过用户拥有的微博、QQ、微信等第三方账号进行登录并且构建APP自己的登录账号体系.
实现第三方登录主要通过下面两步:

  • 在第三方平台完成授权
  • 获取第三方平台的accesstoken信息及用户资料

1.1第三方登录支持的平台

目前友盟社会化组件支持的第三方登录平台为:新浪微博、微信、QQ、QQ空间、腾讯微博、人人网、豆瓣、Facebook、Twitter.

2.新浪微博登录

在AppDelegate应用入口方法添加下面的方法:

//设置分享到QQ/Qzone的应用Id,和分享url 链接#import "UMSocialQQHandler.h"[UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"新浪 appkey"
                                              secret:@"新浪secret"
                                         RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];

在新浪微博登录按钮中实现下面的方法:

UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){//          获取微博用户名、uid、token等if (response.responseCode == UMSResponseCodeSuccess) {UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina];NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);}});

删除授权调用下面的方法:

[[UMSocialDataService defaultDataService] requestUnOauthWithType:UMShareToSina  completion:^(UMSocialResponseEntity *response){NSLog(@"response is %@",response);}];

3.QQ及Qzone登录

QQ登录只支持SSO登录方式,必须具备手机QQ客户端,Qzone默认调用SSO登录.
添加配置文件参考文档:添加QQ及Qzone,添加相关库文件,配置URL schemes及添加系统回调,在AppDelegate应用入口方法添加下面的方法:

//设置分享到QQ/Qzone的应用Id,和分享url 链接#import "UMSocialQQHandler.h"[UMSocialQQHandler setQQWithAppId:@"qq id" appKey:@"qq apply" url:@"http://www.umeng.com/social"];

在QQ登录按钮中实现下面的方法:

UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){//          获取微博用户名、uid、token等if (response.responseCode == UMSResponseCodeSuccess) {UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToQQ];NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);}});

在Qzone登录按钮中实现下面的方法:

UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQzone];snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){//          获取微博用户名、uid、token等if (response.responseCode == UMSResponseCodeSuccess) {UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToQzone];NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);}});
  • 在SDK5.0及之后的版本中,用户信息都直接在授权之后便会返回,可以在snsAccount里获取全部的用户信息资料.
  • Qzone将UMShareToQQ替换为UMShareToQzone即可.

    4.微信登录

    添加配置文件参考文档:添加微信及朋友圈,添加相关库文件,配置URL schemes及添加系统回调:

  • 注意微信登录必须先在微信开放平台申请微信登录权限
    在你的程序APPdelegate入口方法添加下面的代码:

    #import "UMSocialWechatHandler.h"//设置微信AppId、appSecret,分享url[UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"];

    在微信登录按钮中实现下面的方法:

    UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToWechatSession];snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){if (response.responseCode == UMSResponseCodeSuccess) {UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary]valueForKey:UMShareToWechatSession];NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);}
    });
  • 在SDK5.0及之后的版本中,用户信息都直接在授权之后便会返回,可以在snsAccount里获取全部的用户信息资料.

    八、关于提交项目进行苹果审核

    使用微信分享、登录必须安装微信客户端,QQ登录、QQ空间分享过程中必须安装手机QQ客户端,在未安装客户端的设备上测试会提示下载,这是不符合苹果审核规则的。这是微信及腾讯QQ互联导致的问题。 解决方案: 首先调用微信SDK或QQ互联SDK的方法检测是否安装微信/QQ客户端:

    [QQApiInterface isQQInstalled];

    如果未安装客户端则隐藏对应登录或分享按钮。

iOS开发-Umeng第三方登录-个人整理相关推荐

  1. [转载]iOS开发之第三方登录QQ

    转载自 iOS_developer_zhong 1. 申请腾讯开发账号. 地址:点击打开链接 2. 下载最新的SDK   地址: SDK下载 SDK内容如下: 1.sample 这个是简单的demo ...

  2. iOS开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现

    相关资源地址: 本项目demo地址 :   https://github.com/zhonggaorong/weiboSDKDemo 最新SDK下载:  最新微博SDK 官网注册地址:点击打开链接 最 ...

  3. iOS开发之第三方登录QQ -- 史上最全最新第三方登录QQ方式实现

    项目地址 :  https://github.com/zhonggaorong/QQLoginDemo/tree/master 最新版本的qq登录实现步骤实现: 1. 首先,你需要去向腾讯申请账号. ...

  4. 2018年最全iOS开发之第三方库

    最全iOS开发之第三方库 最新增加 EAIntroView 一个灵活的介绍界面,可以用作引导页 UI 下拉刷新 EGOTableViewPullRefresh– 最早的下拉刷新控件. SVPullTo ...

  5. iOS开发 常用第三方开源框架

    iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报 开源框架 图像: 1.图片浏览控件MWPhotoBrowse ...

  6. iOS开发常用第三方开源框架

    iOS开发-常用第三方开源框架倾情整理!简书:https://www.jianshu.com/p/29cb22b13d79 iOS第三方库大全:https://blog.csdn.net/kanggu ...

  7. iOS微信实现第三方登录的方法

    这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2.0 ...

  8. 史上最全iOS开发之第三方库整理汇总

    UI 下拉刷新 EGOTableViewPullRefresh – 最早的下拉刷新控件. SVPullToRefresh – 下拉刷新控件. MJRefresh – 仅需一行代码就可以为UITable ...

  9. iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)--(转)

    图像:  1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.  ...

最新文章

  1. 调用webservice查询手机号码归属地信息
  2. 第19天学习Java的笔记-String字符串
  3. C指针原理(33)-Ncurses-文本终端的图形
  4. 登陆用友服务器超时未响应,用友T3软件10.8plus1普及版服务器提示“客户端已经较长时间未连接加密服务器,超时2880秒,请退出产品重新登录”?-用友T3...
  5. SQL-字符串运算符和函数
  6. portainer MySQL_portainer
  7. 雷军:小米9完全开放购买 全面现货供应
  8. 冯诺依曼结构和哈佛结构01
  9. ios 中NSString的一些调用
  10. HTML做成信纸格式,css3实现信纸/同学录效果的示例代码
  11. 腾讯裁员内幕:顶层反思推动,PCG与CSIG影响最大
  12. 【安卓开发】Android平台的记账本app(全部代码+room框架操作数据库+设计报告)
  13. 在浏览器中播放m3u8
  14. 关于MAC安装yarn
  15. 使用JS数组迭代方法渲染页面数据并实现查询功能
  16. 写会议纪要也是需要水平滴
  17. linux bigendian未定义,big endian与little endian
  18. java中jmod是什么,modulo - j中mod的语法是什么
  19. 牛客练习赛10 B栈和排序【思维】
  20. SpringCloud Netflix-Eureka使用

热门文章

  1. 【智能制造】智能生产:智能制造的主线
  2. Hyperic 开发环境的建立
  3. 吃豆子过桥问题(转)
  4. 素问·阴阳应象大论原文
  5. python语法格式
  6. 220V交流电向单片机供电电路设计思路
  7. MindMap软件介绍
  8. 谷歌 I/O 2019 将于 5 月 7 日举办;百度春晚红包被微信封杀
  9. python英文参考文献_java论文参考文献英文
  10. python要学什么英文歌_关于梦想的英文歌