iOS端新浪微博腾讯三方登录苦泪史


    新浪腾讯的三方登录我是分开做的,当时可能刚自学ShareSDK的时候有点蒙,感觉老是出错,就直接在腾讯开放平台申请下载SDK在做腾讯的登录,成功之后再回头看ShareSDK的时候仔细了一点,就发现了很多之前没有注意到的问题,最终也成功。所以就直接放出来的这两个的三方登录,使用的不同的途径。因为微信申请的开发者资质需要付费,所以直接就拜拜了。原谅我只是一个屌丝。

一、ShareSDK

  1.环境配置

      使用ShareSDK的官方说明,认真仔细不能遗漏不要模糊略过。ShareSDK简洁版iOS文档

      其中最后的时候提到的URL scheme,有兴趣的话可以学习一下,简单说可以理解是移动端App之间的通信是通过它做到的。详解看这里。

   2.具体实践

      ShareSDK简洁版iOS文档  同上,仔细慢慢来就好。  

     到这里应该才算开始这篇文章的正文部分。

    3.infoplist中

  (1)iOS9之后,使用的是https,所以需要配置

     App Transport Security Settings -> Allow Arbitrary Loads ->YES (老生常谈了,反正什么都用得上)。

    (2)这里需要添加的URL types,就跟上面的 URL scheme有关系了,所以说还是要多少了解下上边放出来的连接,人家写的挺好的,浅显的了解的话挺好的,深度的话我也不知道,因为我也不太懂,大概知道怎么回事,慢慢再来吧。

      这一步点到target中的info(其实哪个infoplist都差不多,不过在target里设置的话稍微简单一点,这里ShareSDK文档也提到,我是又啰嗦了一下)。

      点过来之后最下边有一个URL Types


iOS端新浪微博腾讯三方登录苦泪史_第1张图片
最下边


     点开它是这样的


iOS端新浪微博腾讯三方登录苦泪史_第2张图片
格式不同

       其中重要的是URL Schemes,填写的格式是 tencent (使用的三方平台) + 在此平台上申请到的appkey。这里只是腾讯的例子,其他都是各找各的东家。

      (3)完成上一步之后,还需要在infoplist中补充一个数组key值为LSApplicationQueriesSchemes的内容。包括的内容有点多。


iOS端新浪微博腾讯三方登录苦泪史_第3张图片

注意:请忽略那个baidumap,与本文没有关系。里边的内容网上也会搜索到,其实我是根据出错显示缺少了哪个之后添加上的。

4.具体程序

头文件该导入的都要导入进去,官方的文档应该都有说明,在此不做赘述。

ShareSDK 调用了

+ (void)registerApp:(NSString*)appKey  

activePlatforms:(NSArray*)activePlatforms  

onImport:(SSDKImportHandler)importHandler   

onConfiguration:(SSDKConfigurationHandler)configurationHandler;

1.appKey 是我们在ShareSDK官网申请到的appkey,是shareSDK的key,不是三方平台申请到的key。

2.activePlatforms 是一个数组,里边要放的数据是你想要操作的三方平台。

3.onImport 是一个block方法,在这个方法里用switch来添加每个平台

4.onConfiguration 这个block方法,需要对在onImport 中添加过的平台进行注册 ,以微博为例,具体方法为

- (void)SSDKSetupSinaWeiboByAppKey:(NSString*)appKey

appSecret:(NSString*)appSecret

redirectUri:(NSString*)redirectUri

authType:(NSString*)authType;

(1)appKey为三方平台的appKey值

(2)appSecret 为三方平台的appSecret值

(4)authType  授权方式。值可以是:SSDKAuthTypeSSO、SSDKAuthTypeWeb、SSDKAuthTypeBoth,分别代表SSO、网页授权、SSO+网页授权。

(3)redirectUri :回调地址  ,这个需要重点讲 ,栽的最多的地方,一天一栽。

redirectUri的问题 

     如果你出现过( error:redirect_uri_mismatch )的问题 基本就是这里设置的问题了

     先放个链接吧  错误解决方法

     这个值对应的是微博开放平台-> 我的应用 -> 应用信息->基本信息->应用地址

     由上面的链接地址可以看到,我们需要对应用信息中的高级信息-> 授权设置进行操作,这里的地址其实随便写个公司的主页也可以,不过最好和基本信息的应用地址一致。


    微博开放者平台设置完这一步之后,要记得在Mob官网进行同步设置。

(1)首先进入Mob中自己所创建的应用后台信息,侧边框部分

iOS端新浪微博腾讯三方登录苦泪史_第4张图片

点进入社会化平台设置,进来后大致是这样的

iOS端新浪微博腾讯三方登录苦泪史_第5张图片

将是否开启回流短链关闭,然后选择要设置的平台,我选择的是微博。

iOS端新浪微博腾讯三方登录苦泪史_第6张图片

依照要求填写你在微博开放平台申请的AppKey AppSecret 授权回调页。

这里的授权回调页填写的就是微博开放平台应用信息中的高级信息-> 授权设置中保持一致。

5.实现代码

这里可以设计写在一个点击事件的触发方法里,触发后调用三方登录

ShareSDK调用

+ (void)getUserInfo:(SSDKPlatformType)platformType

onStateChanged:(SSDKGetUserStateChangedHandler)stateChangedHandler;

platformType 为你选择的三方平台

onStateChanged block方法中对结果进行判断 ,是否成功

if(state ==SSDKResponseStateSuccess) {

NSLog(@"==成功");

}else{

NSLog(@"==失败");

}

到这里ShareSDK微博登录基本完了,主要的代码还要看官方的文档,这篇文章重点是在进行操作时出现的错误的解释。

腾讯自己的SDK实现三方登录,未完待续...

你可能感兴趣的:(iOS端新浪微博腾讯三方登录苦泪史)