iOS----友盟分享完善版本

时间:2022-02-08 21:36:43

分享 详细集成

注意:1.线上集成文档的示例代码对应的是最新版本的SDK,如果你所用的SDK版本类名或者方法名与此文档不符合,请看随包里面的线下文档或者下载使用最新版本的SDK。

1. 设置友盟appkey

  • 获取友盟Appkey。如果你之前已经在友盟注册了应用,获得了Appkey,可以继续使用之前获得Appkey。

  • 如果你尚未在友盟注册账号,需要先注册,注册之后登录你的账号,点击添加新应用,完成新应用填写之后,将进入应用管理页面。在该页面就能得到Appkey

  • 在代码中设置你的友盟Appkey,在 AppDelegate文件内设置你的AppKey:

#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UMSocialData setAppKey:@"507fcab25270157b37000010"];
}

2. 使用各种不同的分享接口,请按需选取

2.1 使用默认UI风格

  • 适用人群:希望10分钟集成从无到有实现分享的开发者
  • 接口说明:调用该接口将先弹出分享平台选择页,选择相应的平台将进行授权并分享
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
//如果需要分享回调,请将delegate对象设置self,并实现下面的回调方法
[UMSocialSnsService presentSnsIconSheetView:self
                                     appKey:@"507fcab25270157b37000010"
                                  shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                 shareImage:[UIImage imageNamed:@"icon"]
                            shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToTencent,UMShareToRenren,nil]
                                   delegate:nil];

现在会出现效果:
iOS----友盟分享完善版本

注意: 1. 支持分享编辑页和授权页面横屏,必须要在出现列表页面前设置: 
[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];
2. 点击每个平台后默认会进入内容编辑页面,若想点击后直接分享内容,可以实现下面的回调方法。

//弹出列表方法presentSnsIconSheetView需要设置delegate为self
-(BOOL)isDirectShareInIconActionSheet
{
    return YES;
}
  1. 有些分享平台,例如QQ、微信等,需要安装在设备上安装该平台客户端才能进行分享.没有安装该客户端本SDK默认会隐藏显示该平台按钮(苹果审核要求),如果需要强制显示可以打开开关 [UMSocialConfig showAllPlatform:YES];

实现回调方法(可选):

-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
    //根据`responseCode`得到发送结果,如果分享成功
    if(response.responseCode == UMSResponseCodeSuccess)
    {
        //得到分享到的微博平台名
        NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
    }
}

2.2 使用分享API(自动授权后跳转到内容编辑页)

  • 适用人群:较深耕细作型开发者,希望自定义分享列表,使用分享底层API,但仍使用友盟提供的分享编辑页。
  • 接口说明:如果已经授权,则直接跳转到分享编辑页,否则将进行授权操作然后再跳转到分享编辑页.相比presentSnsIconSheetView方法,该接口不需要弹出分享面板。该接口支持所有平台的分享(QQ好友,微信会有选择好友的界面)。

(没有授权则进入授权页面,完成授权后再进入编辑页面。)

#import "UMSocial.h"
……
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
    [[UMSocialControllerService defaultControllerService] setShareText:@"分享内嵌文字" shareImage:[UIImage imageNamed:@"icon"] socialUIDelegate:self];        //设置分享内容和回调对象
    [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].snsClickHandler(self,[UMSocialControllerService defaultControllerService],YES);

注意:若弹出横屏的页面,必须要在出现编辑页面前设置
[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];

实现回调方法(可选):

-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
{
    //根据`responseCode`得到发送结果,如果分享成功
    if(response.responseCode == UMSResponseCodeSuccess)
    {
        //得到分享到的微博平台名
        NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
    }
}

2.3 直接分享底层接口(自动检查授权)

  • 适用人群:较深耕细作型开发者,希望自定义分享列表,希望授权和分享发生,使用分享底层API并自动授权。
  • 直接发送微博到对应的微博平台,仅支持分享到一个平台,可以传入文字、图片、地理位置、url资源。图片、地理位置和url资源可以设为nil。
    只发送到一个微博平台,且该平台没有先授权,SDK会自动打开授权页面,授权完成之后再发送微博。
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享内嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

2.4 直接分享底层接口(授权 + 分享接口分离)

  • 适用人群:深耕细作型开发者,希望完全自定义界面,只使用分享相关底层API实现分享。
  • 接口说明:实现"授权+直接分享",你可以将授权接口(doOauthVerify)跟直接分享接口(directShare)结合起来使用。实现只需简单的几步:
    步骤一:定义自己的分享面板
    步骤二:实现用户授权(首先判断是否已经授权过,否则会重复授权)
    //判断是否授权
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
    [UMSocialAccountManager isOauthAndTokenNotExpired:UMShareToSina]
    //进入授权页面
    [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina].loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            //获取微博用户名、uid、token等
            UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina];
            NSLog(@"username is %@, uid is %@, token is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken);
               //进入你的分享内容编辑页面
        }
    });
> 彩蛋:如果您已经自己使用其他SDK实现了分享,不希望用户重复授权,友盟分享提供了兼容方法。没有这种奇葩行为的用户请忽略此段:
    UMSocialAccountEntity *weiboAccount = [[UMSocialAccountEntity alloc] initWithPlatformName:UMShareToSina];
        weiboAccount.usid = @"your usid";
        weiboAccount.accessToken = @"your accesstoken";
    //    weiboAccount.openId = @"tencent weibo openId";          //腾讯微博账户必需设置openId
    //同步用户信息
    [UMSocialAccountManager postSnsAccount:weiboAccount completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            //在本地缓存设置得到的账户信息
            [UMSocialAccountManager setSnsAccount:weiboAccount];
            //进入你自定义的分享内容编辑页面或者使用我们的内容编辑页面
    }}];
**步骤三:调用直接分享API接口**
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享内嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){
       if (shareResponse.responseCode == UMSResponseCodeSuccess) {
           NSLog(@"分享成功!");
       }
    }];

2.5 分享相关设置

  • 分享url资源

    支持url定义的图片、视频、音乐。下面是分享一个音乐的url页面,也可以指定音乐文件url。如果设置了内嵌图片就不能设置url资源,同理设置了url资源就不能设置内嵌图片。

  • 使用UI分享接口,先设置url分享内容,然后调用弹出分享面板等分享接口,注意本地图片只能传nil

[[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"];
//调用快速分享接口
  1. 使用底层分享接口,把urlResource对象传到分享方法
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
UMSocialUrlResource *urlResource = [[UMSocialUrlResource alloc] initWithSnsResourceType:UMSocialUrlResourceTypeImage url:
                                        @"http://www.baidu.com/img/bdlogo.gif"];
[[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享内嵌文字" image:nil location:nil urlResource:urlResource presentedController:self completion:^(UMSocialResponseEntity *shareResponse){
       if (shareResponse.responseCode == UMSResponseCodeSuccess) {
           NSLog(@"分享成功!");
       }
    }];
  • 分享本地gif图片

    分享本地gif图片到各个开放平台,需要生成把本地gif图片生成NSData对象,作为各个分享方法的shareImage参数,例如快速分享接口如下写法。 
    分享png、jpg图片则只需要生成UIImage,传入到shareImage参数,不能使用这种写法。

    //分享gif图片
    NSString *path = [[NSBundle mainBundle] pathForResource:@"picName"
                                                     ofType:@"gif"];
    NSData *gifData = [NSData dataWithContentsOfFile:path];
    [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:shareText shareImage:gifData shareToSnsNames:nil delegate:self];
    //分享png、jpg图片
    [UMSocialSnsService presentSnsIconSheetView:self appKey:UmengAppkey shareText:shareText shareImage:[UIImage imageNamed:@"picName"] shareToSnsNames:nil delegate:self];
  • 自定义分享平台

    修改平台相应的图片、文字和点击事件等,例如下面修改新浪微博的图片、文字和点击事件

    UMSocialSnsPlatform *sinaPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
    sinaPlatform.bigImageName = @"icon";
    sinaPlatform.displayName = @"微博";
    sinaPlatform.snsClickHandler = ^(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController){
        NSLog(@"点击新浪微博的响应");
    };
  • 设置不同平台分享不同内容

    使用[UMSocialData defaultData].extConfig下设置各个分享平台的分享文字、分享图片、分享视频、音乐等。各个平台的对象名,请参看头文件定义,此设置方法不支持直接发送分享内容的底层分享方法,只支持使用有界面的分享方法,示例代码如下:

[UMSocialData defaultData].extConfig.sinaData.shareText = @"分享到新浪微博内容";
[UMSocialData defaultData].extConfig.tencentData.shareImage = [UIImage imageNamed:@"icon"]; //分享到腾讯微博图片
[[UMSocialData defaultData].extConfig.wechatSessionData.urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"];  //设置微信好友分享url图片
[[UMSocialData defaultData].extConfig.wechatTimelineData.urlResource setResourceType:UMSocialUrlResourceTypeVideo url:@"http://v.youku.com/v_show/id_XNjQ1NjczNzEy.html?f=21207816&ev=2"]; //设置微信朋友圈分享视频
  • 自定义分享来源

    可以在友盟后台对应APP -> 组件 -> 社会化组件 -> 设置页中绑定各平台的appkey,见绑定友盟应用标识与各开放平台

  • 设置支持的屏幕方向

    支持分享编辑页和授权页面横屏,必须要在出现列表页面前进行下面,并在Xcode上的xxx_info.plist文件支持屏幕方向的字段'Supported interface orientations'增加相应的横屏或者竖屏的枚举值。

    //根据你要支持的方向,UIInterfaceOrientationMaskLandscape设置成相应的方向
[UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];
  • 处理分享错误

    用下面的代码打开我们SDK在控制台的输出后能看到相应的错误码。

    [UMSocialData openLog:YES];
新浪微博授权之后出现message为applications over the unaudited use restrictions的错误,原因是没有应用没有通过新浪微博审核,需要添加登录账号到开发者账号。

添加方法:登录开发者帐号,点击进入http://open.weibo.com/apps/30871*/info/advanced (30871***替换成你应用的AppKey),在底部添加测试用户即可,最多只能添加15位且添加后不能修改。注意:修改后约半小时左右时间生效。

3. 各平台SSO(免登录)配置

注意:使用各平台SSO分享,需要到各个微博平台申请自己的应用,绑定方法可以参考绑定友盟应用标识与各开放平台

步骤1. 添加URL scheme

在你的工程设置项,targets 一栏下,选中自己的 target,在 Info->URL Types 中添加 URL Schemes。如果使用的是Xcode3或更低版本,则需要在plist文件中添加。获取各个平台appkey或者appid的方法可以参考分享详细文档绑定各个平台部分,各个平台的url scheme格式如下表:

平台  url scheme设置格式
新浪微博(微博原生SDK) “wb”+新浪appkey,例如“wb126663232”
新浪微博(非微博原生SDK) “sina.”+友盟appkey,例如“sina.507fcab25270157b37000010”
腾讯微博 “wb”+你在友盟后台绑定的腾讯微博App Key,例如“wb801345073”
微信 微信应用appId,例如“wxd9a39c7122aa6516”,微信详细集成步骤参考微信集成方法
人人网 “rm”+你的应用bundle id,例如“rmcom.umeng.SocialSDK”
分享到手机QQ、QQ空间 “QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FA957C”。生成十六进制方法:在命令行输入
echo 'ibase=10;obase=16;您的腾讯QQ互联应用Id'|bc

,并在QQ互联后台的URL schema中填入此字符串保持一致,手机QQ详细集成步骤参考手机QQ集成方法

单独登录到QQ、QQ空间(不分享) “tencent“+腾讯QQ互联应用Id,例如“tencent100308348”
“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FA957C”。生成十六进制方法:在命令行输入
echo 'ibase=10;obase=16;您的腾讯QQ互联应用Id'|bc

,并在QQ互联后台的URL schema中填入此字符串保持一致,手机QQ详细集成步骤参考手机QQ集成方法

来往 Identifier填“Laiwang”,URL Schemes填来往AppId.注意使用来往SDK后,Xcode工程other linker flags需要添加-ObjC参数
易信 易信Appkey,例如“yx35664bdff4db42c2b7be1e29390c1a06”
Facebook 默认使用iOS自带的Facebook分享framework,在iOS 6以上有效,若要使用我们提供的facebook分享需要设置“fb”+facebook AppID,例如“fb1440390216179601”,详细集成方法见[集成facebook](#social_facebook)

iOS----友盟分享完善版本

  • 在AppDelegate文件集成相应的开关方法:
#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //设置友盟社会化组件appkey
    [UMSocialData setAppKey:UmengAppkey];
    //设置微信AppId、appSecret,分享url
    [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"];
    //设置手机QQ 的AppId,Appkey,和分享URL,需要#import "UMSocialQQHandler.h"
    [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"];
    //打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。若在新浪后台设置我们的回调地址,“http://sns.whalecloud.com/sina2/callback”,这里可以传nil ,需要 #import "UMSocialSinaHandler.h"
    [UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
    //打开腾讯微博SSO开关,设置回调地址,需要 #import "UMSocialTencentWeiboHandler.h"
    [UMSocialTencentWeiboHandler openSSOWithRedirectUrl:@"http://sns.whalecloud.com/tencent2/callback"];
    //打开人人网SSO开关,需要 #import "UMSocialRenrenHandler.h"
    [UMSocialRenrenHandler openSSO];
    //设置易信Appkey和分享url地址,注意需要引用头文件 #import UMSocialYixinHandler.h
    [UMSocialYixinHandler setYixinAppKey:@"yx35664bdff4db42c2b7be1e29390c1a06" url:@"http://www.umeng.com/social"];
    //设置来往AppId,appscret,显示来源名称和url地址,注意需要引用头文件 #import "UMSocialLaiwangHandler.h"
    [UMSocialLaiwangHandler setLaiwangAppId:@"8112117817424282305" appSecret:@"9996ed5039e641658de7b83345fee6c9" appDescription:@"友盟社会化组件" urlStirng:@"http://www.umeng.com/social"];
    //设置Facebook,AppID和分享url,需要#import "UMSocialFacebookHandler.h"
    //默认使用iOS自带的Facebook分享framework,在iOS 6以上有效。若要使用我们提供的facebook分享需要使用此开关:
    [UMSocialFacebookHandler setFacebookAppID:@"1440390216179601" shareFacebookWithURL:@"http://www.umeng.com/social"];
    //默认使用iOS自带的Twitter分享framework,在iOS 6以上有效。若要使用我们提供的twitter分享需要使用此开关:
    [UMSocialTwitterHandler openTwitter];
}

步骤2. 在AppDelegate文件里面实现下面三个系统回调方法

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

若你除了使用我们SDK外,还用了其他SDK,需要重写此回调方法的,可以参考下面的写法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如新浪微博SDK等
    }
    return result;
}

步骤3. 添加系统库文件(不使用QQ空间和手机QQ的SSO功能可以忽略此步骤)

  • 添加SDK依赖的系统库文件。

    在Xcode中打开工程配置文件,选择“summary”一栏。在“summary”中选择“Linked Frameworks and Libraries”一栏,点击“+”图标添加下面七个库文件,分别是 Security.framework libiconv.dylib SystemConfiguration.framework CoreGraphics.Framework libsqlite3.dylibCoreTelephony.framework libstdc++.dylib libz.dylib

4. 集成微信

4.1 注册微信应用id.

在微信开放平台注册应用,得到微信应用id

4.2 添加微信SDK文件.

  • UMSocial_Sdk_Extra_Frameworks目录下,添加Wechat文件夹到工程

4.3 设置微信应用id

在你的Appdelegate入口方法,设置微信Appid,需要设置你的分享URL

  #import "UMSocialWechatHandler.h"
    //设置微信AppId、appSecret,分享url
    [UMSocialWechatHandler setWXAppId:@"wxd930ea5d5a258f4f" appSecret:@"db426a9829e4b49a0dcac7b4162da6b6" url:@"http://www.umeng.com/social"];

4.4 设置url scheme

  • 添加xcode的url scheme为“wx”+微信应用appId,例如“wxd9a39c7122aa6516”。
  • 实现下面三个系统回调方法:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
 return  [UMSocialSnsService handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application
              openURL:(NSURL *)url
    sourceApplication:(NSString *)sourceApplication
           annotation:(id)annotation
 {
 return  [UMSocialSnsService handleOpenURL:url];
 }

4.5 分享到微信好友、微信朋友圈、微信收藏

  • 使用分享列表页面,分享到微信好友、微信朋友圈、微信收藏
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:@[UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite]
                                    delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 直接分享到微信
    //使用UMShareToWechatSession,UMShareToWechatTimeline,UMShareToWechatFavorite分别代表微信好友、微信朋友圈、微信收藏
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToWechatSession] content:@"分享内嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

4.6 设置微信分享消息类型(可选)

//在分享代码前设置微信分享应用类型,用户点击消息将跳转到应用,或者到下载页面
//UMSocialWXMessageTypeImage 为纯图片类型
    [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;
//分享图文样式到微信朋友圈显示字数比较少,只显示分享标题
    [UMSocialData defaultData].extConfig.title = @"朋友圈分享内容";
//设置微信好友或者朋友圈的分享url,下面是微信好友,微信朋友圈对应wechatTimelineData
    [UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://xxxx";

5. 集成手机QQ

5.1 在腾讯QQ互联开放平台注册应用

5.2 添加手机QQSDK文件.

  • UMSocial_Sdk_Extra_Frameworks目录下的,添加TencentOpenAPI文件夹到工程

5.3 添加下面几个系统framework

在Xcode中打开工程配置文件,选择“summary”一栏。在“summary”中选择“Linked Frameworks and Libraries”一栏,点击“+”图标添加下面七个库文件,分别是“Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。

5.4 设置xcode的url scheme

  • 设置xcode的url scheme格式为“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FA957C”。生成十六进制方法:echo 'ibase=10;obase=16;您的腾讯QQ互联应用Id'|bc。并在QQ互联后台的URL schema中填入此字符串保持一致。

  • 单独用QQ授权功能,需要额外设置url scheme的格式为"tencent"+腾讯QQ互联应用appId,例如“tencent100308348”

  • 实现下面三个系统回调方法:

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

5.5 打开集成手机QQ开关

  • 根据上面SSO相关设置介绍,在AppDelegate应用入口方法打开集成手机QQ开关。
    //设置分享到QQ空间的应用Id,和分享url 链接
    #import "UMSocialQQHandler.h"
    [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"];

5.6 选择下面两种方式分享到手机QQ

  • 使用分享列表页面,增加分享到手机QQ
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                shareToSnsNames:@[UMShareToQQ]
                                    delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 直接分享到手机QQ
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToQQ] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

注意:若分享到手机QQ后,出现崩溃提示下面报错,说明使用QQ互联SDK使用的处理base64相关类名和你的工程所使用的base64类出现重名,你需要修改一下base64相关的类名。 +[QQOpenApiUtility base64EncodedStringWithData:]

5.7 设置手机QQ分享消息类型(可选)

分享到手机QQ默认为图文消息,即网页类型,可以设置为无文字的纯图片类型,在调用分享代码前增加下面代码

[UMSocialData defaultData].extConfig.qqData.qqMessageType = UMSocialQQMessageTypeImage;

注意:使用手机QQ客户端分享到QQ好友后,由于腾讯分享策略,若该好友在PC端打开此消息,只能查看分享链接,没有分享图片和文字内容。

6. 集成QQ空间

6.1 在腾讯QQ互联开放平台注册应用

6.2 添加QQ空间SDK文件.

  • UMSocial_Sdk_Extra_Frameworks目录下的,添加TencentOpenAPI文件夹到工程

6.3 添加下面几个系统framework

在Xcode中打开工程配置文件,选择“summary”一栏。在“summary”中选择“Linked Frameworks and Libraries”一栏,点击“+”图标添加下面七个库文件,分别是“Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。

6.4 设置Xcode URL Scheme

  • 设置xcode的url scheme格式为“QQ”+腾讯QQ互联应用appId转换成十六进制(不足8位前面补0),例如“QQ05FA957C”。生成十六进制方法:echo 'ibase=10;obase=16;您的腾讯QQ互联应用Id'|bc。并在QQ互联后台的URL schema中填入此字符串保持一致。

  • 单独用QQ授权功能,需要额外设置url scheme的格式为"tencent"+腾讯QQ互联应用appId,例如“tencent100308348”

  • 实现下面三个系统回调

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

6.5 打开集成QQ空间开关

  • 根据上面SSO相关设置介绍,在AppDelegate应用入口方法打开集成QQ空间的开关。
    //设置分享到QQ空间的应用Id,和分享url 链接
    #import "UMSocialQQHandler.h"
    [UMSocialQQHandler setQQWithAppId:@"100424468" appKey:@"c7394704798a158208a74ab60104f0ba" url:@"http://www.umeng.com/social"];

6.6 选择下面两种方式分享到QQ空间

分享到QQ空间必须要设置分享文字和分享图片,否则会出现10001的分享错误

  • 使用分享列表页面,增加分享到QQ空间
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                 shareToSnsNames:@[UMShareToQzone]
                                    delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 直接分享到QQ空间
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToQzone] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

7. 集成新浪微博SSO

7.1 添加新浪微博相关库文件添加到工程。

7.1.1 使用微博原生SDK

解压下载文件夹,将SinaSSO_Full文件夹添加到工程。

在other linker flags增加-ObjC 选项,添加ImageIO 系统framework

7.1.2 使用非微博原生SDK

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Sina文件夹添加到工程。

7.2 填写Xcode的URL Scheme

URL Schemes填"sina."+你的友盟AppKey.实现下面两个系统回调:

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

7.3 打开新浪微博SSO开关

7.3.1 使用微博原生SDK

在你的Appdelegate入口添加下面的代码:

   #import "UMSocialSinaSSOHandler.h"
     //打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。若在新浪后台设置我们的回调地址,“http://sns.whalecloud.com/sina2/callback”,这里可以传nil
     [UMSocialSinaSSOHandler openNewSinaSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"];

7.3.2 使用非微博原生SDK

在你的Appdelegate入口方法,添加下面的代码

  #import "UMSocialSinaHandler.h"
    //打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。若在新浪后台设置我们的回调地址,“http://sns.whalecloud.com/sina2/callback”,这里可以传nil
    [UMSocialSinaHandler openSSOWithRedirectURL:@"http://sns.whalecloud.com/sina2/callback"];

7.4 分享到新浪微博

  • 打开分享面板,使用UMShareToSina代表分享到新浪微博
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:@[UMShareToSina]
                                        delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToSina直接分享到新浪微博
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToSina] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

8. 集成腾讯微博SSO

8.1 添加腾讯微博相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把TencentWeibo文件夹添加到工程。

8.2 填写Xcode的URL Scheme

URL Schemes填"wb"+你的腾讯微博App Key.实现下面两个系统回调:

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

8.3 打开腾讯微博SSO开关

在你的Appdelegate入口方法,需要设置你的分享URL

    //打开腾讯微博SSO开关,设置回调地址
    [UMSocialTencentWeiboHandler openSSOWithRedirectUrl:@"http://sns.whalecloud.com/tencent2/callback"];

8.4 分享到腾讯微博

  • 打开分享面板,使用UMShareToTencent代表分享到腾讯微博
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:@[UMShareToSina]
                                        delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToTencent直接分享到腾讯微博
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToTencent] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

9. 集成人人网SSO

9.1 添加人人网相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Renren文件夹添加到工程。

9.2 填写Xcode的URL Scheme

URL Schemes填"rm"+你的应用Bundle Id.实现下面两个系统回调:

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

9.3 打开人人网SSO开关

在你的Appdelegate入口方法,需要设置你的分享URL

    //打开人人网SSO开关
    [UMSocialRenrenHandler openSSO];

9.4 分享到人人网

  • 打开分享面板,使用UMShareToRenren代表分享到人人网
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:@[UMShareToRenren]
                                        delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToRenren直接分享到人人网
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToRenren] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

10. 集成来往

10.1 添加来往相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把LaiWang文件夹添加到工程。

10.2 填写Xcode的URL Scheme

Identifier填“Laiwang”,URL Schemes填你的来往AppId.实现下面三个系统回调:

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

10.3 在AppDelegate的入口方法,添加下面代码:

//设置来往AppId,appscret,显示来源名称和url地址,注意需要引用头文件 #import "UMSocialLaiwangHandler.h"
    [UMSocialLaiwangHandler setLaiwangAppId:@"8112117817424282305" appSecret:@"9996ed5039e641658de7b83345fee6c9" appDescription:@"友盟社会化组件" urlStirng:@"http://www.umeng.com/social"];

10.4 在Xcode工程 other linker flag设置-ObjC参数。

10.5 选用下面两种方式分享到来往好友和来往动态

  • 使用UMShareToLWSessionUMShareToLWTimeline分别代表分享到来往好友和来往动态
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:@[UMShareToLWSession,UMShareToLWTimeline]
                                        delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToLWSessionUMShareToLWTimeline直接分享到来往好友和来往动态
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToLWSession] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

11. 集成易信

11.1 添加易信库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把YiXin文件夹添加到工程。

11.2 增加Xcode的URL scheme,直接填写你的易信Appkey.实现下面三个系统回调:

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

11.3 在AppDelegate入口方法添加下面的代码:

//设置易信Appkey和分享url地址,注意需要引用头文件 #import UMSocialYixinHandler.h
[UMSocialYixinHandler setYixinAppKey:@"yx35664bdff4db42c2b7be1e29390c1a06" url:@"http://www.umeng.com/social"];

11.4 分享到易信好友和易信朋友圈

  • 使用UMShareToYXSessionUMShareToYXTimeline分别代表分享到易信好友和易信朋友圈
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                              shareToSnsNames:@[UMShareToLWSession,UMShareToLWTimeline]
                                    delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToYXSessionUMShareToYXTimeline直接分享到来往好友和来往动态
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToYXSession] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

12. 集成Facebook

默认使用iOS自带的Facebook分享framework,在iOS 6以上有效,不需要额外步骤,若要使用我们提供的facebook分享需要完成下面的步骤:

12.1 添加Facebook相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Facebook文件夹添加到工程。

12.2 注册Facebook应用

在https://developers.facebook.com 注册你的facebook应用,注意在你的应用Native iOS App填写Bundle ID。

12.3 增加Xcode 的URL Scheme

填写“fb”+facebook AppID,例如“fb1440390216179601”.实现下面三个系统回调方法:

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

12.4 在AppDelegate的入口方法增加下面代码:

    //设置Facebook,AppID和分享url,需要#import "UMSocialFacebookHandler.h"
    [UMSocialFacebookHandler setFacebookAppID:@"1440390216179601" shareFacebookWithURL:@"http://www.umeng.com/social"];

12.5 选用下面两种方式分享到Facebook

  • 在分享列表增加Facebook平台
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                 shareToSnsNames:@[UMShareToFacebook]
                                        delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToFacebook直接分享到Facebook
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToFacebook] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

13. 集成Twitter

13.1 添加Twitter相关库文件添加到工程。

默认使用iOS自带的Twitter分享,不需要额外的步骤,若使用我们提供的Twitter分享,需要完成下面的步骤

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Twitter文件夹添加到工程。

13.2 添加系统Framework

添加系统Framework:Accounts.frameworkSocial.framework

13.3 打开Twitter开关

在AppDelegate的入口方法设置:

#import "UMSocialTwitterHandler.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UMSocialTwitterHandler openTwitter];
}

13.4 选用下面两种方式分享到Twitter

  • 在分享列表增加Twitter平台
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                 shareToSnsNames:@[UMShareToTwitter]
                                       delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToTwitter直接分享到Twitter
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToTwitter] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

14. 集成Instagram

14.1 添加Instagram相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Instagram文件夹添加到工程。

14.2 打开Instagram开关

在AppDelegate的入口方法设置:

#import "UMSocialInstagramHandler.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UMSocialInstagramHandler openInstagramWithScale:NO paddingColor:[UIColor blackColor]];
}

14.3 选用下面两种方式分享

  • 在分享列表增加Instagram平台
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                shareToSnsNames:@[UMShareToInstagram]
                                       delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToInstagram直接分享到Instagram
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToInstagram] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

15. 集成Line

15.1 添加Line相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Line文件夹添加到工程。

15.2 打开Line开关

在AppDelegate的入口方法设置:

#import "UMSocialLineHandler.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//分享到line,只能分享纯文本消息或者纯图片消息
    [UMSocialLineHandler openLineShare:UMSocialLineMessageTypeImage];
}

15.3 选用下面两种方式分享

  • 在分享列表增加Line平台
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                shareToSnsNames:@[UMShareToLine]
                                       delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToLine直接分享到Line
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToLine] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

16. 集成Whatsapp

16.1 添加Whatsapp相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Whatsapp文件夹添加到工程。

16.2 打开Whatsapp开关

在AppDelegate的入口方法设置:

#import "UMSocialLineHandler.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//分享到whatsapp,只能分享纯文本消息或者纯图片消息
    [UMSocialWhatsappHandler openWhatsapp:UMSocialWhatsappMessageTypeImage];
}

16.3 选用下面两种方式分享

  • 在分享列表增加Whatsapp平台
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                shareToSnsNames:@[UMShareToWhatsapp]
                                       delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToWhatsapp直接分享到Whatsapp
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToWhatsapp] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

17. 集成Tumblr

17.1 添加Tumblr相关库文件添加到工程。

解压下载文件夹,在UMSocial_Sdk_Extra_Frameworks目录下,把Tumblr文件夹添加到工程。

17.2 打开Tumblr开关

注意:我们采用打开Tumblr客户端方式分享到Tumblr,由于Tumblr客户端没有兼容iOS8,因此在iOS8上分享失败。

在AppDelegate的入口方法设置:

#import "UMSocialTumblrHandler.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [UMSocialTumblrHandler openTumblr];
}

17.3 选用下面两种方式分享

  • 在分享列表增加Tumblr平台
    [UMSocialSnsService presentSnsIconSheetView:self
                                          appKey:你的友盟应用Appkey
                                       shareText:@"友盟社会化分享让您快速实现分享等社会化功能,www.umeng.com/social"
                                      shareImage:[UIImage imageNamed:@"icon.png"]
                                shareToSnsNames:@[UMShareToTumblr]
                                       delegate:self];
    //实现回调方法(可选):
    -(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
    {
            //根据`responseCode`得到发送结果,如果分享成功
            if(response.responseCode == UMSResponseCodeSuccess)
            {
                //得到分享到的微博平台名
                NSLog(@"share to sns name is %@",[[response.data allKeys] objectAtIndex:0]);
            }
    }
  • 使用UMShareToTumblr直接分享到Tumblr
    [[UMSocialDataService defaultDataService]  postSNSWithTypes:@[UMShareToTumblr] content:@"分享文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *response){
        if (response.responseCode == UMSResponseCodeSuccess) {
            NSLog(@"分享成功!");
        }
    }];

18. 绑定友盟应用标识与各开放平台

获得appkey后,为了方便您可以快速集成我们的社会化分享的服务,我们会为你对各个平台提供一个默认的appkey和appsecret,如果你想使用自己的微博平台的应用,您需在在我们网站更改默认的微博appkey,具体操作是:登录友盟网站->左上角选择你们的产品->组件->社会化组件->设置,菜单项下进行绑定配置。如果你尚未在我们支持的分享平台注册你的应用,注册过程可以参考如下:

新浪微博

1. 在新浪开放平台后台创建移动应用:http://open.weibo.com -> 应用开发 -> 移动应用 -> 创建应用

2. 在创建好新应用后,选择“基本信息”,安全域名填写"sns.whalecloud.com",其余字段按需填写;(如果是已有应用,可以在应用信息->基本设置->安全域名中做修改)
高级信息,授权回调页,填写“http://sns.whalecloud.com/sina2/callback”

3. 如果应用尚未通过审核,则需要指定测试用户,该阶段只有指定的测试用户才可以分享信息到新浪微博,应用通过审核后此限制自动失效。

4. 将获取到的Key和Secret手工填写到友盟后台对应应用的组件 -> 社会化组件 -> 设置页 -> 新浪微博APP绑定信息部分。

腾讯微博

1. 填写应用信息,生成封装链接。如果还未配置应用地址的封装链接,需要在友盟后台对应应用的组件 ->社会化组件 ->设置页填写你的腾讯微博应用对应的App Key和App Secret,完成之后即出现生成封转链接表单;

iOS----友盟分享完善版本

2. 在腾讯开放平台后台创建无线应用:http://dev.t.qq.com/ -> 应用开发 -> 创建应用 -> “无线应用”;

3. 在创建无线应用表单中,“应用网址”需要填写步骤1生成的应用网址的封装链接,其余字段按需填写;

(如果是已有应用,可以在基本信息-》应用网址中填写上述的封装链接)

4. 将获取到的Key和Secret手工填写到友盟后台对应应用的组件 -》社会化组件 - 》设置页 -》腾讯微博APP绑定信息部分。

人人网

1. 在如下位置创建应用:http://dev.renren.com/ -》应用开发-》创建客户端应用-》填写应用名称;

2. 在已创建应用的基本信息-》应用根域名字段填写为“sns.whalecloud.com”;

3. 应用处于“开发中”状态(未审核通过前),需要在用户管理页面中添加测试用户,这些特定用户才能分享成功。应用通过审核后此限制自动失效。

4. 将获取到的App ID、API Key、Secret手工填写到友盟后台对应应用的组件 -》社会化组件 - 》设置页 -》人人网APP绑定信息部分,并勾选“开放平台”。

豆瓣

与人人网的申请、配置方式基本一致,开放平台链接如下:http://developers.douban.com/

回调地址为:http://sns.whalecloud.com/douban/callback

权限必须选择豆瓣广播

QQ空间

1. 在如下位置创建应用:http://connect.qq.com/manage/ -》添加移动应用-》填写应用名称,确定;

2. 在接下来的应用控制台->基本信息->点击编辑按钮,填写必要的应用信息,并保存。(不做有可能授权失败)

3. 增加图文分享权限。登录到腾讯QQ互联平台的应用管理页面http://connect.qq.com/manage/,选择你的应用-》 应用管理 -》API管理 -》未获取API-》选择 `list_album upload_pic add_album` 申请权限。

4. 在网站应用信息->回调地址,填写为:http://sns.whalecloud.com。若为移动应用,应先添加为网站。

5. 将获取到的APP ID、Key手工填写到友盟后台对应应用的组件 -》社会化组件 - 》设置页 -》QQ空间APP绑定信息部分。

19. FAQ

请到友盟社会化组件的帮助与支持页面

20. 错误码

错误码 错误原因
500 给定uid的用户并不存在
501 绑定账户失败
502 解绑定失败
504 获取评论失败
505 用户被加入黑名单
506 获取好友失败
507 获取授权url失败
508 解除授权失败
510 分享失败
511 获取bar失败
512 从平台获取用户信息失败
513 url跳转失败
514 从social获取用户信息失败
515 请求的参数错误
517 版本号错误
5001 错误的友盟appkey,或者此appkey没有绑定任何平台.如果开发者绑定了,依然出现这个问题,让开发者再试一下,可能是刚绑定马上就测试的原因,最好等2分钟。
5002 这个友盟appkey已经被禁止
5003 请求的参数中没有uid
5004 未知的错误,具体的错误信息会在log的输出中
5005 访问频率超限,可一会儿再试
5006 请求参数中没有content字段
5007 请求参数中content字段的内容为空
5008 没有上传图片
5009 此友盟的appkey没有绑定对应平台的appkey和appsecret
5010 userid无效,这个用户并没有进行授权
5013 请求的参数中没有appkey这个字段
5014 没有对此用户进行授权
5024 获取access token失败,具体看log输出
5025 获取request token失败,具体看log输出
5027 授权已经过期