博客> IOS第三方登录:QQ.新浪微博开发--分享、授权登录
IOS第三方登录:QQ.新浪微博开发--分享、授权登录
2017-10-19 06:59 评论:0 阅读:572 OS_JJ
ios 回调的基本使用

一、准备工作

    0.前往(http://www.mob.com),用公司的Mob账号注册登录,下载ShareSDK For iOS ,然后倒入工程中,在点击文档中心,选择iOS集成文档,根据分享或者登录查看文档!

    1. 百度搜索微博开放平台,用公司注册的账号和密码登注册成为开发者,创建应用项目,获取APPkey

    2.添加 SDK 文件到工程
       添加 ShareSDK iOS版SDK到项目中或者是 Cocoapods 集成!
       在工程中引入静态库之后,需要在编译时添加 –objC 编译选项,避免静态库 中类加载 不全造成程序崩溃。方法:程序 Target->Buid Settings->Linking 下 Other Linker Flags 项添加-ObjC。

     3.导入相关头文件  

 F619331E-07D4-453F-B1B0-5EB45D67A344.png

    4.设置工程回调 URL Scheme
        修改 info.plist 文件 URL types 项为自己的 sso 回调地址,”WB[你的应用程序的 Appkey]”,例如:wb204543436852
        如图所示:

 21743C72-7708-42BB-9DAA-73DD70B845CF.png

     5.设置白名单

     <key>LSApplicationQueriesSchemes</key>
        <array>
           <string>mqqOpensdkSSoLogin</string>
           <string>mqzone</string>
           <string>sinaweibo</string>
           <string>alipayauth</string>
           <string>alipay</string>
           <string>safepay</string>
           <string>mqq</string>
           <string>mqqapi</string>
           <string>mqqopensdkapiV3</string>
           <string>mqqopensdkapiV2</string>
           <string>mqqapiwallet</string>
           <string>mqqwpa</string>
           <string>mqqbrowser</string>
           <string>wtloginmqq2</string>
           <string>weixin</string>
           <string>wechat</string>
       </array>

二. 到此可进行新浪分享和登录的开发了(微信、微博、QQ操操作大体一致)

1、分享到新浪客户端开发

       1. 在应用启动时注册新浪微博

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
        [self thirdLogin];  
        return YES;  
    }  

 8DBD2769-3034-4EF0-AD9C-B5691D37ECD6.png

    /*可要可不要
    //处理新浪返回时的回调来启动应用,并设置新浪微博sdk的代理方法

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  
    {  
        return [WeiboSDK handleOpenURL:url delegate:self];  
    }  

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation  
    {  
        return [WeiboSDK handleOpenURL:url delegate:self];  
    }  
    */

    2.  发送信息到微博即分享到微博,将如下代码放到你自己的发送信息的方法中

 E87DAD8C-53CA-4065-891C-75409A92F331.png

    /*可忽视
    新浪微博的代理方法

    #pragma ----------------------- WeiboSDKDelegate -------------------  

    - (void)didReceiveWeiboRequest:(WBBaseRequest *)request  
    {  
        if ([request isKindOfClass:WBProvideMessageForWeiboRequest.class]){  
           // 这个代理方法好像是在新浪微博的客户端来启用的应用,然后你的应用在提供分享信息 没有升入研究,有兴趣的可以试试  
        }  
    }  

    - (void)didReceiveWeiboResponse:(WBBaseResponse *)response  
    {  
        NSString *message = nil;  
        if ([response isKindOfClass:WBSendMessageToWeiboResponse.class]){  
            if (WeiboSDKResponseStatusCodeSuccess == response.statusCode) {  
                // 执行分享后的回调代理,就是分享后从新浪的客户端回到自己的应用会执行  
            }  

        }else if ([response isKindOfClass:WBAuthorizeResponse.class]){  
            WBAuthorizeResponse *authorizeResponse = (WBAuthorizeResponse *)response;  
            if (WeiboSDKResponseStatusCodeSuccess == authorizeResponse.statusCode) {  
                // 使用授权会调用 授权的开发情况下面  
            }  
        }  
        if (message != nil && ![@"" isEqualToString:message]) {  
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil  
                                                            message:message  
                                                           delegate:nil  
                                                  cancelButtonTitle:@"确定"  
                                                  otherButtonTitles:nil];  
            [alert show];  
        }  
    }  
    */

2、sso授权登录开发  

接下来我们说说授权登录的开发,首先,我们先要对开发进行一些设定。在 新浪的开发平台应用管理中心的设置

1. 设定授权回调页 (对应在客户端使用授权登录时,授权回调页时不需要设置的,默认时http://,它对应WBAuthorizeRequest类中的redirectURI,这个属性的值是不能为空的,如果设置了授权回调页,redirectURI必须也要一致,也就是说:**在你的开发者中心设置授权回调页为http://www.xxxx.com,那么redirectURI的值也要是http://www.xxxx.com**)
请在“我的应用 - 应用信息 - 高级信息”中填写您的应用回调页,这样才 能使 OAuth2.0 授权正常进行。如果您的 APPSECRET 发生泄露,您也可以通过 该页面中的重置按钮对其重置,

2. 设定 Apple ID 和 Bundle ID  (这个很重要,如果没有设置进行在授权时就时-100号的错误,Apple ID:就是你的当前的应用在AppStore上面的id号,可以找到)
请在“我的应用 - 应用信息 - 基本信息”中填写您的 Apple ID 和 Bundle ID,这样您的应用才能正常使用微博 iOS SDK 授权和回调。(更改设置有延时, 建议退出账号重新登录后再测试)

apple id 可以先随便填写一个,后期在更改!

Bundle ID 需要和工程设置保证一致,在 XCODE5 下 Bundle 的截图如下:

 AD26580B-E6C8-452D-BDC9-85434E838F99.png

三.不用第三方框架,可去相关平台集成SDK!

    若无MOB框架,参考http://blog.csdn.net/lwjok2007/article/details/46422951;
收藏
1
sina weixin mail 回到顶部