美文网首页
iOS中第三方账号登录(以新浪微博为列)

iOS中第三方账号登录(以新浪微博为列)

作者: Ming普 | 来源:发表于2016-07-11 07:53 被阅读860次

    进行第三方账号登录的过程:

    一些基本sdk先导入工程,并设置对应的appkey之类的,这些参考一下友盟分享(这个比较常见,项目中分享常用第三方的话一般都是友盟,这个不多说)。

    友盟第三方登录官方文档入口:http://dev.umeng.com/social/ios/login-page


    新浪微博登录:

    根据文档提示,我们在点击登录的地方写入

    UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];

    snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){

    // 获取微博用户名、uid、token等

    if (response.responseCode == UMSResponseCodeSuccess) {

    NSDictionary *dict = [UMSocialAccountManager socialAccountDictionary]; UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:snsPlatform.platformName];

    NSLog(@"\nusername = %@,\n usid = %@,\n token = %@ iconUrl = %@,\n unionId = %@,\n thirdPlatformUserProfile = %@,\n thirdPlatformResponse = %@ \n, message = %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL, snsAccount.unionId, response.thirdPlatformUserProfile, response.thirdPlatformResponse, response.message);

    }});

    代码就这一点,看起来很简单轻松,可是小伙伴们是不是发现自己跳转新浪微博时候会报error:redirect_uri_mismatch或者sso package or sign error,哈哈,让我们来解决这些错误。

    登录和分享是不一样的,第三方账号登录,会提取第三方账户的信息,所以,你得先让第三方诸如微博之类的相信你这个开发者,相信你这个app是正规的,才能放心把信息交给你,所以我们需要到对应的开发者平台注册信息。(新浪微博开发者中心http://open.weibo.com/)

    找到我的应用(不管你是做分享还是登陆,用友盟第三方,都要提供一个新浪的key和App Secret,所以你必须得为你的app创建一个对应的开发者平台的应用信息),在基本信息里面填写对应的信息,bundle ID 需要跟你用的这个应用的bundle id一样要不然会报sso package or sign error。

    最下面的应用介绍图片,你需要提供的图片是你应用中用到新浪微博的地方(我在这提供的是分享的,登录的你提供也行,只要和他新浪有关他应该都会给过的),我本人在这里第一次随便给了三张图,结果被拒了。。

    应用介绍

    基本信息里面的 安全域名 ,选择是,要设置成sns.whalecloud.com,不要问我为什么。

    ...

    然后该填的填了,就提交吧,等待审核成功,说是一天,有时候一个小时就过了,看你运气了。

    当然了,这里还不够,在高级信息里面,将回调页全部设置成http://sns.whalecloud.com/sina2/callback

    这个是和你代码中的url对应的,见下图

    好了,到这就行了,然后运行你的程序吧,点击登录按钮,调用一开始写的代码,然后就跳转账户授权中心,点击确定,获取用户信息(该用户的基本信息都被我们抓取到啦~~~毕竟官方都承认我们不是坏人了..)

    好了,到这就完成了新浪微博的账户登录,其他的像qq,微信,都是一样的,也要去对应的腾讯开发者中心,微信开发者中心注册一系列东西,要得到信任,才能去获取他人信息!总是要麻烦点。

    提一下qq的,需要添加两个url schemes(分享只需要一个就行,我之前添加的QQ+16进制的key,写登录需要再添加一个tencent+key)

    相关文章

      网友评论

          本文标题:iOS中第三方账号登录(以新浪微博为列)

          本文链接:https://www.haomeiwen.com/subject/mvydjttx.html