iOS--通過MOB平台實現第三方登錄與分享


 

 適合剛開始接觸第三方登錄與分享的IOS小白!!

這兩天看了一下有關IOS第三方登錄與分享的一些知識,發現在QQ開放平台與微信開放平台實現這些功能很繁瑣,不容易實現,在導師的推薦下,找到了這樣一個平台

http://mob.com  MOB雲平台,通過這一個平台就可以實現大部分的第三方登錄與分享,比如常見的QQ,微信,新浪微博等等.

廢話不多說,開始吧!先說第三方分享吧!

 

一 .第三方分享

1.獲取AppKey

  在Mob的官網注冊應用得到appkey,請點擊鏈接看里面的操作步驟。

2.下載SDK

  具體參照Mob官網.

3.集成

  1.將下載好的SDK導入你的項目

  

 

  2.添加依賴庫(每個平台所需庫不一樣,這里是新浪微博與QQ,微信所需的庫)

  

 

  3.設置ShareSDK的Appkey並初始化對應的第三方社交平台 打開*AppDelegate.m(*代表你的工程名字)導入頭文件

  

  

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    
    /**
     *  設置ShareSDK的appKey
     *  在將生成的AppKey傳入到此方法中。
     *  方法中的第二個第三個參數為需要連接社交平台SDK時觸發,
     *  在此事件中寫入連接代碼。第四個參數則為配置本地社交平台時觸發,根據返回的平台類型來配置平台信息。
     *  如果您使用的時服務端托管平台信息時,第二、四項參數可以傳入nil,第三項參數則根據服務端托管平台來決定要連接的社交SDK。
     */
    [ShareSDK registerApp:@"1c72a06f47e6c"
          activePlatforms:@[@(SSDKPlatformTypeSinaWeibo),
                            @(SSDKPlatformTypeWechat),
                            @(SSDKPlatformTypeQQ)]
                 onImport:^(SSDKPlatformType platformType) {
                     switch (platformType) {
                         case SSDKPlatformTypeWechat:
                             [ShareSDKConnector connectWeChat:[WXApi class]];
                             break;
                         case SSDKPlatformTypeQQ:
                             [ShareSDKConnector connectQQ:[QQApiInterface class]tencentOAuthClass:[TencentOAuth class]];
                             break;
                         case SSDKPlatformTypeSinaWeibo:
                             [ShareSDKConnector connectWeibo:[WeiboSDK class]];
                             break;
                             
                             
                         default:
                             break;
                     }
                 }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) {
              switch (platformType) {
                  case SSDKPlatformTypeWechat:
                      [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
                                            appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
                      break;
                  case SSDKPlatformTypeQQ:
                      [appInfo SSDKSetupQQByAppId:@"100371282"
                                           appKey:@"aed9b0303e3ed1e27bae87c33761161d"
                                         authType:SSDKAuthTypeBoth];
                      break;
                  case SSDKPlatformTypeSinaWeibo:
                      //設置新浪微博應用信息,其中authType設置為使用SSO+Web形式授權
                      [appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"
                                                appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
                                              redirectUri:@"http://www.sharesdk.cn"
                                                 authType:SSDKAuthTypeBoth];
                      break;
                      
                  default:
                      break;
              }
              
          }];
    
    
    
    return YES;
}

 

  4.添加實現代碼 打開需要集成分享功能的視圖源碼

 

- (IBAction)actionBtnShare:(id)sender {
    NSLog(@"點擊了分享");
    
    //1、創建分享參數
    NSArray* imageArray = @[[UIImage imageNamed:@"shareImg"]];
    //(注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確,如果要分享網絡圖片,可以這樣傳iamge參數 images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
    if (imageArray) {
        
        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
        [shareParams SSDKSetupShareParamsByText:@"分享內容"
                                         images:imageArray
                                            url:[NSURL URLWithString:@"http://mob.com"]
                                          title:@"分享標題"
                                           type:SSDKContentTypeAuto];
        //有的平台要客戶端分享需要加此方法,例如微博
        [shareParams SSDKEnableUseClientShare];
        //2、分享(可以彈出我們的分享菜單和編輯界面)
        /**
         *  顯示分享菜單
         *
         *   view                     要顯示菜單的視圖, iPad版中此參數作為彈出菜單的參照視圖
         *   items                    菜單項,如果傳入nil,則顯示已集成的平台列表
         *   shareParams              分享內容參數
         *   shareStateChangedHandler 分享狀態變更事件
         *
         *   分享菜單控制器
         */
        SSUIShareActionSheetController *sheet = [ShareSDK showShareActionSheet:nil
                                 items:nil
                           shareParams:shareParams
                   onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
                       
                       switch (state) {
                           case SSDKResponseStateSuccess:
                           {
                               NSLog(@"分享成功");
                               break;
                           }
                           case SSDKResponseStateFail:
                           {
                               NSLog(@"分享失敗");
                               break;
                           }
                           default:
                               break;
                       }
                   }
         ];
        
        //默認都是跳轉到APP的編輯頁面去編輯的
        
        //加了這個方法之后可以不跳分享編輯界面,直接點擊分享菜單里的選項,直接分享
        //[sheet.directSharePlatforms addObject:@(SSDKPlatformTypeSinaWeibo)];
        //默認微信,QQ,QQ空間都是直接跳客戶端分享,加了這個方法之后,可以跳分享編輯界面分享
        //[sheet.directSharePlatforms removeObject:@(SSDKPlatformTypeWechat)];
    }
    
}

 

 

 

  代碼到這里就結束了,看一下最終效果:

  

 

 

4.注意事項:

  1.微信,QQ這些第三方平台要實現分享必須添加各自真實的URL Types(圖片里面的是測試KEY,可以使用)

  

  我這里只是簡略的配了下圖,具體的見MobIOS集成手冊 http://wiki.mob.com/ios簡潔版快速集成/

 

  2.plist 文件的配置

  

  添加白名單:

      

    這里的白名單僅僅是新浪微博與QQ,微信的數據,其他平台的數據見Mob集成注意手冊.

  3.新浪微博SDK需要在項目Build Settings中的Other Linker Flags添加"-ObjC"

   4.如果出現的分享頁面不是中文,這樣設置:

  

 

 

二.第三方登錄

如果你已經實現了第三方分享,那么實現第三方登錄將十分簡單

其他配置一樣,只是實現的代碼需要修改

//QQ 登錄
- (IBAction)actionBtnLogin:(id)sender {
    NSLog(@"點擊了登錄");
    
        
    //QQ登錄
    [ShareSDK getUserInfo:SSDKPlatformTypeQQ
           onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
     {
         if (state == SSDKResponseStateSuccess)
         {
             
             NSLog(@"uidQQ=%@",user.uid);
             NSLog(@"credentialQQ=%@",user.credential);
             NSLog(@"tokenQQ=%@",user.credential.token);
             NSLog(@"nicknameQQ=%@",user.nickname);
             _showText.text = [NSString stringWithFormat:@"歡迎您,%@",user.nickname];
         }
         
         else
         {
             NSLog(@"%@",error);
         }
         
     }];
        
    
}

//微信登錄

//微信登錄
- (IBAction)actionWeixinLogin:(id)sender {
    //QQ登錄
    [ShareSDK getUserInfo:SSDKPlatformTypeWechat
           onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
     {
         if (state == SSDKResponseStateSuccess)
         {
             
             NSLog(@"uidWechat=%@",user.uid);
             NSLog(@"credentialWechat=%@",user.credential);
             NSLog(@"tokenWechat=%@",user.credential.token);
             NSLog(@"nicknameWechat=%@",user.nickname);
             _showText.text = [NSString stringWithFormat:@"歡迎您,%@",user.nickname];
         }
         
         else
         {
             NSLog(@"%@",error);
         }
         
     }];
    
}

 

效果圖:

2019.5.17 更新:代碼已經很老了,可能有的代碼會報錯,最好去MOB官網看看如何集成!

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM