友盟 2002错误

  • 首先给大家展示下报错
Error Domain=UMSocialPlatformErrorDomain Code=2002 "(null)" UserInfo={message=appKey is nil}
  • 在大家看看我是如何解决的:

    友盟官方文档上这样一个方法“ confitUShareSettings”

func confitUShareSettings() {
        UMSocialGlobal.shareInstance().isUsingHttpsWhenShareContent = false
        //设置微信的appkey和appsecret
        UMSocialManager.default().setPlaform(UMSocialPlatformType.wechatSession, appKey: wxAppKey, appSecret: wxAppSecret, redirectURL: XQURLString)
        //设置QQ的APPkey和appsecret
        UMSocialManager.default().setPlaform(UMSocialPlatformType.QQ, appKey: QQAppKey, appSecret: nil, redirectURL: XQURLString)
        //设置支付宝APPkey和appsecret
        UMSocialManager.default().setPlaform(UMSocialPlatformType.alipaySession, appKey: alipayAppKey, appSecret: "", redirectURL: XQURLString)
    }

可惜我忘了调用。。。
屏幕快照 2018-08-25 下午12.25.04.png
  • 调用下,就ok了。如果你也出现了类型的问题,可能是以下方法没有调用。
UMSocialManager.default().setPlaform(UMSocialPlatformType.wechatSession, appKey: wxAppKey, appSecret: wxAppSecret, redirectURL: XQURLString)

在此对友盟的集成做个总结:

1、 设置URL Types
屏幕快照 2018-08-25 下午12.30.58.png

2、设置Info.plist文件
屏幕快照 2018-08-25 下午12.35.13.png

3、使用友盟的AppKey初始化服务
 UMConfigure.initWithAppkey(UMKey, channel: "App Store")

4、使用在各平台申请的Appkey初始化对应平台的服务

func confitUShareSettings() {
        UMSocialGlobal.shareInstance().isUsingHttpsWhenShareContent = false
        //设置微信的appkey和appsecret
        UMSocialManager.default().setPlaform(UMSocialPlatformType.wechatSession, appKey: wxAppKey, appSecret: wxAppSecret, redirectURL: XQURLString)
        //设置QQ的APPkey和appsecret
        UMSocialManager.default().setPlaform(UMSocialPlatformType.QQ, appKey: QQAppKey, appSecret: nil, redirectURL: XQURLString)
        //设置支付宝APPkey和appsecret
        UMSocialManager.default().setPlaform(UMSocialPlatformType.alipaySession, appKey: alipayAppKey, appSecret: "", redirectURL: XQURLString)
    }

5、在需要的地方调用获取第三方平台信息的方法:

UMSocialManager.default().getUserInfo(with: platformType, currentViewController: nil) { (result, error) in
            guard error == nil else{
                let nsError = error! as NSError
                print("错误是什么:\(nsError)")
                let dic = nsError.userInfo
//                print("错误:\(error?.localizedDescription)")
                let ac = UIAlertController.init(title: "第三方登录失败", message: dic["message"] as? String, preferredStyle: UIAlertControllerStyle.alert)
                ac.addAction(UIAlertAction.init(title: "确定", style: UIAlertActionStyle.default, handler: nil))
                self.present(ac, animated: true, completion: nil)
                return
            }
            let res = result as! UMSocialUserInfoResponse
            //第三方登录信息
            print("uid"+res.uid)
            print("openid:"+res.openid)
            print("accessToken:"+res.accessToken)
            print("refreshToken:"+res.refreshToken)
            print("expiration:\(res.expiration)")
            
            //用户数据
            print("name:"+res.name)
            print("iconurl:"+res.iconurl)
            print("gender:"+res.unionGender)
            
            //第三方平台SDK原始数据
            print("originalResponse:\(res.originalResponse)")
            
            
        }
    }

注:上述方法我封装在下述方法中:

func getUserInfoForPlatform(platformType:UMSocialPlatformType) {
        UMSocialManager.default().getUserInfo(with: platformType, currentViewController: nil) { (result, error) in
            guard error == nil else{
                let nsError = error! as NSError
                print("错误是什么:\(nsError)")
                let dic = nsError.userInfo
//                print("错误:\(error?.localizedDescription)")
                let ac = UIAlertController.init(title: "第三方登录失败", message: dic["message"] as? String, preferredStyle: UIAlertControllerStyle.alert)
                ac.addAction(UIAlertAction.init(title: "确定", style: UIAlertActionStyle.default, handler: nil))
                self.present(ac, animated: true, completion: nil)
                return
            }
            let res = result as! UMSocialUserInfoResponse
            //第三方登录信息
            print("uid"+res.uid)
            print("openid:"+res.openid)
            print("accessToken:"+res.accessToken)
            print("refreshToken:"+res.refreshToken)
            print("expiration:\(res.expiration)")
            
            //用户数据
            print("name:"+res.name)
            print("iconurl:"+res.iconurl)
            print("gender:"+res.unionGender)
            
            //第三方平台SDK原始数据
            print("originalResponse:\(res.originalResponse)")
            
            
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 友盟能实现分享功能,友盟+申请第三方账号的目的: 进行分享、授权操作需要在第三方平台创建应用并提交审核,友盟...
    CoderZb阅读 13,238评论 8 60
  • 今晚会议见识了小叶子做语法报告所使用的记录神器,被震了,当即剁手买了无线蓝牙键盘,这样以后可以提高手机记录信息的效...
    米特Dragon阅读 2,271评论 0 0
  • 也许是我早熟?很早很早的时候就喜欢上了班里的一个同学,直到现在,已婚,心里仍然有他的位置,说不清楚为什么会在意,他...
    冷秀晚香阅读 1,176评论 0 0
  • 不喜欢抱怨 不喜欢埋怨 不喜欢势力 不喜欢矫情 不喜欢唠叨 不喜欢撒娇 不喜欢太过于繁琐 不喜欢脾气太过 不喜欢抽...
    与山与山阅读 1,742评论 0 2
  • 今天我们开了年级会,老师对我们说了很多很多,再不努力真的完了
    1d992bae2640阅读 1,040评论 0 1