CocoaPods 安裝 ShareSDK

官方網(wǎng)站說明

步驟流程

1 使用分享現(xiàn)注冊一個應用得到AppKey

2 下載SDK, 直接將文件拖入工程中

3 然后添加依賴庫(4個) libicucore.dylib libz.dylib libstdc++.dylib JavaScriptCore.framework

4 添加需要的平臺依賴庫

新浪微博SDK依賴庫 ImageIO.framework libsqlite3.dylib

QQ好友和QQ空間SDK依賴庫 libsqlite3.dylib

微信SDK依賴庫 libsqlite3.dylib

短信和郵件需要依賴庫 MessageUI.framework

5 在AppDelegate.m引入頭文件 <ShareSDK/ShareSDK.h> <ShareSDKConnector/ShareSDKConnector.h> 再引入需要的平臺頭文件 參考集成文檔

6 在- (BOOL)application: didFinishLaunchingWithOptions:方法中調(diào)用registerApp方法來初始化SDK并且初始化第三方平臺

7 ShareSDK registerApp:@"iosv1101" @""中就是注冊的AppKey

8 在需要用到分享的文件中引入頭文件 <ShareSDK/ShareSDK.h> <ShareSDKUI/ShareSDK+SSUI.h>

9 調(diào)用構造分享參數(shù)接口和分享的接口

獲取Appkey

  • 注冊登錄
  • 點擊右上角人物頭像->進入后臺

產(chǎn)品中心頁面:根據(jù)您的需要選擇相應SDK點擊進入后臺谁榜。第一個ShareSDK是社會化分享SDK辕棚,第二個是短信驗證碼SDK(不同SDK后臺創(chuàng)建應用的App Key和App Secret是不通用的,請分別創(chuàng)建)

圖例.png
  • 獲取Appkey
圖例.png

下載安裝SDK

手動集成(官方快速集成說明)
cocoaPods 集成

1.安裝 cocopods 并為項目添加依賴關系;
參考<<CocoaPods安裝和使用>>
2.按需要在 Podfile 文件中添加命令

 # 主模塊(必須)
 pod 'ShareSDK3'
 # Mob 公共庫(必須) 如果同時集成SMSSDK iOS2.0:可看此注意事項:http://bbs.mob.com/thread-20051-1-1.html
 pod 'MOBFoundation'
 
 # UI模塊(非必須饶囚,需要用到ShareSDK提供的分享菜單欄和分享編輯頁面需要以下1行)
 pod 'ShareSDK3/ShareSDKUI'
 
 # 平臺SDK模塊(對照一下平臺,需要的加上褐鸥。如果只需要QQ俊鱼、微信、新浪微博粟瞬,只需要以下3行)
 pod 'ShareSDK3/ShareSDKPlatforms/QQ'
 pod 'ShareSDK3/ShareSDKPlatforms/SinaWeibo'
 pod 'ShareSDK3/ShareSDKPlatforms/WeChat'
 
 pod 'ShareSDK3/ShareSDKPlatforms/RenRen'
 pod 'ShareSDK3/ShareSDKPlatforms/AliPaySocial'
 pod 'ShareSDK3/ShareSDKPlatforms/Kakao'

3.執(zhí)行 pod update
如果安裝過程中遇到問題,可以參考:官方問題說明文檔

項目集成分享功能

1.在AppDelegate.m導入頭文件

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
 
//騰訊開放平臺(對應QQ和QQ空間)SDK頭文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
 
//微信SDK頭文件
#import "WXApi.h"
 
//新浪微博SDK頭文件
#import "WeiboSDK.h"
//新浪微博SDK需要在項目Build Settings中的Other Linker Flags添加"-ObjC"
 
//人人SDK頭文件
#import <RennSDK/RennSDK.h>

2.- (BOOL)application: didFinishLaunchingWithOptions:方法中調(diào)用registerApp方法來初始化SDK并且初始化第三方平臺(各社交平臺申請APPkey 的網(wǎng)址及申請流程匯總)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
      /**
     *  設置ShareSDK的appKey萤捆,如果尚未在ShareSDK官網(wǎng)注冊過App裙品,請移步到http://mob.com/login 登錄后臺進行應用注冊,
     *  在將生成的AppKey傳入到此方法中俗或。
     *  方法中的第二個第三個參數(shù)為需要連接社交平臺SDK時觸發(fā)市怎,
     *  在此事件中寫入連接代碼。第四個參數(shù)則為配置本地社交平臺時觸發(fā)蕴侣,根據(jù)返回的平臺類型來配置平臺信息焰轻。
     *  如果您使用的是服務端托管平臺信息時,第二昆雀、四項參數(shù)可以傳入nil辱志,第三項參數(shù)則根據(jù)服務端托管平臺來決定要連接的社交SDK。
     */
 [ShareSDK registerApp:@"iosv1101"
 
           activePlatforms:@[
                            @(SSDKPlatformTypeSinaWeibo),
                            @(SSDKPlatformTypeMail),
                            @(SSDKPlatformTypeSMS),
                            @(SSDKPlatformTypeCopy),
                            @(SSDKPlatformTypeWechat),
                            @(SSDKPlatformTypeQQ),
                            @(SSDKPlatformTypeRenren),
                            @(SSDKPlatformTypeGooglePlus)]
           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;
                  case SSDKPlatformTypeRenren:
                          [ShareSDKConnector connectRenren:[RennClient class]];
                    break;
                  default:
                    break;
                }
          }
          onConfiguration:^(SSDKPlatformType platformType, NSMutableDictionary *appInfo) 
          {
 
              switch (platformType)
              {
                  case SSDKPlatformTypeSinaWeibo:
                      //設置新浪微博應用信息,其中authType設置為使用SSO+Web形式授權
                      [appInfo SSDKSetupSinaWeiboByAppKey:@"568898243"
                                                appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3"
                                              redirectUri:@"http://www.sharesdk.cn"
                                                 authType:SSDKAuthTypeBoth];
                   break;
                  case SSDKPlatformTypeWechat:
                      [appInfo SSDKSetupWeChatByAppId:@"wx4868b35061f87885"
                                            appSecret:@"64020361b8ec4c99936c0e3999a9f249"];
                   break;
                  case SSDKPlatformTypeQQ:
                      [appInfo SSDKSetupQQByAppId:@"100371282"
                                           appKey:@"aed9b0303e3ed1e27bae87c33761161d"
                                         authType:SSDKAuthTypeBoth];
                   break;
                  case SSDKPlatformTypeRenren:
                      [appInfo        SSDKSetupRenRenByAppId:@"226427"
                                               appKey:@"fc5b8aed373c4c27a05b712acba0f8c3"
                                            secretKey:@"f29df781abdd4f49beca5a2194676ca4"
                                             authType:SSDKAuthTypeBoth];
                    break;
                   case SSDKPlatformTypeGooglePlus:
                      [appInfo SSDKSetupGooglePlusByClientID:@"232554794995.apps.googleusercontent.com" clientSecret:@"PEdFgtrMw97aCvf0joQj7EMk" redirectUri:@"http://localhost"];
                    break;
                   default:
                    break;
              }
          }];
 return YES;
}

3.添加實現(xiàn)代碼 打開需要集成分享功能的視圖源碼狞膘,把如下代碼復制并粘貼到你要分享的位置揩懒,例如到響應分享按鈕的方法中。并且修改相應的參數(shù)即可挽封。
1)導入頭文件

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKUI/ShareSDK+SSUI.h>

2)調(diào)用構造分享參數(shù)接口和分享的接口

 //1、創(chuàng)建分享參數(shù)
    NSArray* imageArray = @[[UIImage imageNamed:@"shareImg.png"]];
    //(注意:圖片必須要在Xcode左邊目錄里面,名稱必須要傳正確净神,如果要分享網(wǎng)絡圖片俄删,可以這樣傳iamge參數(shù) images:@[@"http://mob.com/Assets/images/logo.png?v=20150320"])
    if (imageArray) {
        
        NSMutableDictionary *shareParams = [NSMutableDictionary dictionary];
        [shareParams SSDKSetupShareParamsByText:@"分享內(nèi)容"
                                         images:imageArray
                                            url:[NSURL URLWithString:@"http://mob.com"]
                                          title:@"分享標題"
                                           type:SSDKContentTypeAuto];
        //2、分享(可以彈出我們的分享菜單和編輯界面)
        [ShareSDK showShareActionSheet:nil //要顯示菜單的視圖, iPad版中此參數(shù)作為彈出菜單的參照視圖点待,只有傳這個才可以彈出我們的分享菜單阔蛉,可以傳分享的按鈕對象或者自己創(chuàng)建小的view 對象,iPhone可以傳nil不會影響
                                 items:nil
                           shareParams:shareParams
                   onShareStateChanged:^(SSDKResponseState state, SSDKPlatformType platformType, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error, BOOL end) {
                       
                       switch (state) {
                           case SSDKResponseStateSuccess:
                           {
                               UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"分享成功"
                                                                                   message:nil
                                                                                  delegate:nil
                                                                         cancelButtonTitle:@"確定"
                                                                         otherButtonTitles:nil];
                               [alertView show];
                               break;
                           }
                           case SSDKResponseStateFail:
                           {
                               UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"分享失敗"
                                                                               message:[NSString stringWithFormat:@"%@",error]
                                                                              delegate:nil
                                                                     cancelButtonTitle:@"OK"
                                                                     otherButtonTitles:nil, nil];
                               [alert show];
                               break;
                           }
                           default:
                               break;
                       } }];
         }

更多內(nèi)容

為了使您的用戶有更好的分享體驗癞埠,以及您的應用有更多的分享量状原,更好地在社交平臺上傳播,我們建議您參考“進階功能”的指引進行SSO(免登錄)和更多社交平臺的設置苗踪。

可選:支持微信所需的相關配置及代碼 在微信開放平臺(http://open.weixin.qq.com/ )注冊應用并取得應用的AppID颠区,然后打開下圖位置,在URL Types中添加微信AppID

55BDA8FD-90BF-472B-999C-4C57680AB210.png

打開AppDelegate.m文件通铲,導入微信SDK的頭文件并增加微信的外部庫接口

#import <ShareSDKConnector/ShareSDKConnector.h>
//微信SDK頭文件
#import "WXApi.h"
//初始化的import參數(shù)注意要鏈接原生微信SDK毕莱。
case SSDKPlatformTypeWechat:
     [ShareSDKConnector connectWeChat:[WXApi class]];
break;

可選:支持QQ所需的相關配置及代碼 登錄QQ互聯(lián)(http://connect.qq.com/ )注冊成為開發(fā)者并登記應用取得AppId,然后打開下圖位置颅夺,在URL Types中添加QQ的AppID央串,其格式為:”QQ” + AppId的16進制(如果appId轉換的16進制數(shù)不夠8位則在前面補0,如轉換的是:5FB8B52碗啄,則最終填入為:QQ05FB8B52 注意:轉換后的字母要大寫) 轉換16進制的方法:echo ‘ibase=10;obase=16;801312852′|bc质和,其中801312852為QQ的AppID:

echo 'ibase=10;obase=16;801312852'|bc

圖例

然后打開工程中的AppDelegate.m文件,導入QQSDK的頭文件并增加QQ的外部庫文件接口:

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//騰訊開放平臺(對應QQ和QQ空間)SDK頭文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
//初始化的import參數(shù)注意要鏈接原生QQSDK稚字。
 case SSDKPlatformTypeQQ:
      [ShareSDKConnector connectQQ:[QQApiInterface class] tencentOAuthClass:[TencentOAuth class]];
 break;

配置新浪微博饲宿、Facebook的SSO 登錄新浪微博和facebook的開放平臺,獲取AppID 胆描。新浪微博的url scheme的設置格式為wb+AppID瘫想,facebook的設置格式為fb+AppID。具體參考下圖:

新浪微博

附:目前的新浪微博SDK需要在項目的Build Settings中的Other Linker Flags添加”-ObjC”昌讲,如果不配置有可能會崩潰国夜。步驟如下:

Objc

當新浪微博需要客戶端分享或者增加關注微博的功能,需要打開工程中的AppDelegate.m文件短绸,導入新浪微博SDK的頭文件并增加新浪微博的外部庫文件接口:

#import <ShareSDK/ShareSDK.h>
#import <ShareSDKConnector/ShareSDKConnector.h>
//新浪微博SDK頭文件
#import "WeiboSDK.h"
//初始化的import參數(shù)注意要鏈接原生新浪微博SDK车吹。
 case SSDKPlatformTypeSinaWeibo:
      [ShareSDKConnector connectWeibo:[WeiboSDK class]];
 break;

第三方登錄

添加實現(xiàn)代碼 打開需要集成登錄功能的視圖源碼筹裕,把如下代碼復制并粘貼到你要登錄的位置,例如到響應登錄按鈕的方法中窄驹。并且修改相應的參數(shù)即可朝卒。
這里以QQ登陸為例
(其他的平臺也一樣的處理,修改下初始化以及登陸方法里的平臺類型參數(shù):微信登錄-> SSDKPlatformTypeWechat,新浪微博登錄->SSDKPlatformTypeSinaWeibo,文檔最后介紹各個平臺需要配置的url schemes 參數(shù))

//例如QQ的登錄
[ShareSDK getUserInfo:SSDKPlatformTypeQQ
           onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error)
     {
         if (state == SSDKResponseStateSuccess)
         {

             NSLog(@"uid=%@",user.uid);
             NSLog(@"%@",user.credential);
             NSLog(@"token=%@",user.credential.token);
             NSLog(@"nickname=%@",user.nickname);
         }

         else
                 {
                     NSLog(@"%@",error);
                 }

     }];

也可以調(diào)用這個方法:

// 導入頭文件
#import <ShareSDKExtension/SSEThirdPartyLoginHelper.h>

[SSEThirdPartyLoginHelper loginByPlatform:SSDKPlatformTypeQQ
                                   onUserSync:^(SSDKUser *user, SSEUserAssociateHandler associateHandler) {

                                       //在此回調(diào)中可以將社交平臺用戶信息與自身用戶系統(tǒng)進行綁定乐埠,最后使用一個唯一用戶標識來關聯(lián)此用戶信息抗斤。
                                       //在此示例中沒有跟用戶系統(tǒng)關聯(lián),則使用一個社交用戶對應一個系統(tǒng)用戶的方式丈咐。將社交用戶的uid作為關聯(lián)ID傳入associateHandler瑞眼。
                                       associateHandler (user.uid, user, user);
                                        NSLog(@"dd%@",user.rawData);
                                         NSLog(@"dd%@",user.credential);

                                   }
                                onLoginResult:^(SSDKResponseState state, SSEBaseUser *user, NSError *error) {

                                    if (state == SSDKResponseStateSuccess)
                                    {

                                    }

                                }];

支持客戶端登錄的相關配置

QQ如果要跳客戶端登錄的話,需要配置下URL Scheme:
然后打開下圖位置棵逊,在URL Types中添加騰訊AppID伤疙,其格式為:tencent+appID(你在QQ中申請的AppId), 如:tencent100371282。如圖所示:

圖例

各個主流社交平臺登錄需要配置的url schemes:

圖例

QQ授權<<LTLottery>>登錄信息

uid:4C44EDFD838BCFCC45FA9F6EEB41BFF6
access_token: 5824103C034EB76D8B7861204B090FE8
expires_in : 7775999.695360005
openid : 4C44EDFD838BCFCC45FA9F6EEB41BFF6
nickname:吳下阿蒙
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歹河,一起剝皮案震驚了整個濱河市掩浙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秸歧,老刑警劉巖厨姚,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異键菱,居然都是意外死亡谬墙,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門经备,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拭抬,“玉大人,你說我怎么就攤上這事侵蒙≡旎ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵纷闺,是天一觀的道長算凿。 經(jīng)常有香客問我,道長犁功,這世上最難降的妖魔是什么氓轰? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮浸卦,結果婚禮上署鸡,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好靴庆,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布时捌。 她就那樣靜靜地躺著,像睡著了一般撒穷。 火紅的嫁衣襯著肌膚如雪匣椰。 梳的紋絲不亂的頭發(fā)上裆熙,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天端礼,我揣著相機與錄音,去河邊找鬼入录。 笑死蛤奥,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的僚稿。 我是一名探鬼主播凡桥,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蚀同!你這毒婦竟也來了缅刽?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤蠢络,失蹤者是張志新(化名)和其女友劉穎衰猛,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刹孔,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡啡省,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了髓霞。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卦睹。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖方库,靈堂內(nèi)的尸體忽然破棺而出结序,到底是詐尸還是另有隱情,我是刑警寧澤纵潦,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布徐鹤,位于F島的核電站,受9級特大地震影響酪穿,放射性物質發(fā)生泄漏凳干。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一被济、第九天 我趴在偏房一處隱蔽的房頂上張望救赐。 院中可真熱鬧,春花似錦、人聲如沸经磅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽预厌。三九已至阿迈,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間轧叽,已是汗流浹背苗沧。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留炭晒,地道東北人待逞。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像网严,于是被迫代替她去往敵國和親识樱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 搜狗 Passport iOS SDK 是搜狗為開發(fā)者提供的第三方單點登錄和搜狗賬戶注冊登錄服務震束。本版本提供的第三...
    Www劉閱讀 2,246評論 2 1
  • 由于近期工作需要自己抽時間搞了一下第三方分享,這里使用的是shareSDK的第三方,在使用的過程中有一些心得和體會...
    燦爛先森閱讀 11,285評論 29 69
  • 獲取SDK 下載SDK操作流程 下載SDK最新版 如下圖所示: SDK組件說明 根據(jù)需要怜庸,選擇自己需要的平臺、精簡...
    極簡coder閱讀 2,261評論 0 0
  • 第三方登錄 一.第三方登錄的定義 第三方登錄垢村,就是利用用戶在第三方平臺上已有的賬號來快速完成自己應用的登錄流程割疾。這...
    niu神DNS閱讀 3,738評論 2 23
  • 如果你正在學習 Linux,可能會使用 VMware 虛擬機的克隆功能肝断,快速的復制已安裝好的Linux系統(tǒng)杈曲。那么這...
    我是小徐同學閱讀 829評論 0 1