• UM_第三方登录


    参考官方文档(http://dev.umeng.com/social/ios/detail-share#7), 做出以下总结.

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

    实现第三方登录主要通过下面两步:

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

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

    /// 1. -----------------------   QQ 授权登录

       QQ登录只支持 SSO登录方式, 必须具备手机QQ客户端, QZone 默认采用SSO登录

    1.1 添加库文件

      在UMSocial_Sdk_Extra_Frameworks目录下的,添加TencentOpenAPI文件夹到工程

    1.2 添加系统支持库

      • Security.framework
      • libiconv.dylib
      • SystemConfiguration.framework
      • CoreGraphics.Framework
      • libsqlite3.dylib
      • CoreTelephony.framework
      • libstdc++.dylib
      • libz.dylib

    1.3 添加QQ及Qzone到分享列表

      在AppDelegate应用入口方法打开集成手机QQ、Qzone开关

    //设置分享到QQ/Qzone的应用Id,和分享url 链接
    #import "UMSocialQQHandler.h"
    [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"];
      • 如果不添加上面的代码,则分享列表中不会出现QQ及Qzone图标

      • URL必须为http链接,如果设置为nil则默认为友盟官网链接

    1.4 配置URL schemes

      在Xcode中一共需要配置两次: (1)设置Xcode的url scheme格式为“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”; (2) 额外设置 url schemes 的格式为"tencent"+腾讯QQ互联应用appId,例如“tencent100424468”.

      在QQ互联后台需要设置一次: QQ互联后台的URL schema中填入字符串与(1)保持一致:格式为“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FC5B14”。

    [注意1]: 如果 URL schemes 配置错误,则分享完成后无法返回应用, 登录功能也不能开启.

    [注意2]: (可选) 在Xcode 6.0创建工程时,需要在info.plist文件中, 添加 Bundle display name属性值。 ---  用于显示分享后, 本App的名称 (再次设置的名称, 会显示在分享来源中).

    1.5 代码设置

    • 添加系统回调

    在APPdelegate中实现下面的方法

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
    {
     return  [UMSocialSnsService handleOpenURL:url];    
    }
    - (BOOL)application:(UIApplication *)application 
                  openURL:(NSURL *)url 
        sourceApplication:(NSString *)sourceApplication
               annotation:(id)annotation
     {
     return  [UMSocialSnsService handleOpenURL:url];
     }  
    • 设置分享内容

      默认分享样式

      使用友盟默认分UI界面,添加下面代码

        [UMSocialSnsService presentSnsIconSheetView:self
                                              appKey:你的友盟应用Appkey
                                           shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                          shareImage:[UIImage imageNamed:@"icon.png"]
                                    shareToSnsNames:@[UMShareToQQ,UMShareToQzone]
                                        delegate:self]; 
        //实现回调方法(可选):
        -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
        {
                //根据`responseCode`得到发送结果,如果分享成功
                if(response.responseCode == UMSResponseCodeSuccess)
                {
                    //得到分享到的微博平台名
                    NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
                }      
        }

    [注意]: Qzone分享文字与图片缺一不可,否则会出现错误码10001

    /// -- 2. 微信 要实现第三方登录功能, 需要认证开发者, 每年需要交300RMB.

    /// -- 3. 新浪微博  --  步骤与QQ的登录设置基本一致;

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

    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);
    
                }});
    
    

    在授权完成后调用获取用户信息的方法

    //获取accestoken以及新浪用户信息,得到的数据在回调Block对象形参respone的data属性
    [[UMSocialDataService defaultDataService] requestSnsInformation:UMShareToSina  completion:^(UMSocialResponseEntity *response){
            NSLog(@"SnsInformation is %@",response.data);
        }];
    
    

    获取好友列表调用下面的方法,由于新浪官方限制,获取好友列表只能获取到30%好友

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

    删除授权调用下面的方法

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


  • 相关阅读:
    地理大发现
    克里斯托弗·哥伦布
    2016. last day in office
    泰斯花粉阻隔剂 怎么使用
    ZT 螨虫知识2
    ZT 螨虫的话就不要跟狗多接触,狗的寄生虫很多,还有草地,
    expense KK [ɪkˋspɛns] DJ [iksˋpens]
    Windows 实战项目 001 文件扫描器 (01)
    017 系统内存信息 内存大小 空闲内存 5
    017 虚拟内存页面区块 4
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4904412.html
Copyright © 2020-2023  润新知