美文网首页iOS开发者笔记
iOS端新浪微博腾讯三方登录苦泪史

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

作者: 93未完待续 | 来源:发表于2016-03-23 10:07 被阅读345次


        新浪腾讯的三方登录我是分开做的,当时可能刚自学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

    最下边

         点开它是这样的

    格式不同

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

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

    注意:请忽略那个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中自己所创建的应用后台信息,侧边框部分

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

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

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

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

    5.实现代码

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

    ShareSDK调用

    + (void)getUserInfo:(SSDKPlatformType)platformType

    onStateChanged:(SSDKGetUserStateChangedHandler)stateChangedHandler;

    platformType 为你选择的三方平台

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

    if(state ==SSDKResponseStateSuccess) {

    NSLog(@"==成功");

    }else{

    NSLog(@"==失败");

    }

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

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

    相关文章

      网友评论

      • 863c73f31933:作者你好,你知道为什么新浪shareSDK分享,授权会自动取消不?
      • 梦月落花LOVE:👏👏👏👏👏👏👏👏👏

      本文标题:iOS端新浪微博腾讯三方登录苦泪史

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