进行第三方账号登录的过程:
一些基本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)
网友评论