- 友盟,专业的移动开发者服务平台,为移动开发者提供免费的应用统计分析、社交分享、消息推送、自动更新、在线参数、移动推广效果分析、微社区等,下面是要分享的内容
- 第三方登录流程
- 友盟支持第三方登录的平台
- 友盟社会化分享支持的平台
- 集成友盟社会化组件流程
- 友盟社会化SDK集成流程
- 注意事项
- 示例代码
第三方登录流程
友盟支持第三方登录的平台
新浪微博、腾讯微博、QQ、QQ空间、微信、人人
友盟社会化分享支持的平台
- 国内平台:微信(微信好友及微信朋友圈)、QQ、Qzone、新浪微博、腾讯微博、人人网、豆瓣、短信、邮件、有道云笔记、来往、易信
- 国外平台:Facebook、Twitter、Instagram、EverNote、Pocket、Pinterest、Linkedin、G+
集成友盟社会化组件流程
注册友盟账号
申请第三方账号
- 参照文档:申请第三方账号
绑定第三方账号
- 参照文档:绑定第三方账号到友盟后台
下载SDK
- 进入下载SDK页面(点击链接),勾选自己需要的功能进行下载
友盟社会化SDK集成流程
配置AndroidManifest.xml
- 配置权限、友盟AppKey、分享的相关组件,详情参考文档
复制指定平台的libs和res到项目中
- 每个平台对应的jar包和资源文件,详情参考文档
在代码中设置需要分享的平台和内容
- 传递平台appId/appKey参数并添加指定平台和分享的媒体内容
注意事项
- 使用第三方登录的时候需要进行签名打包,不然在新浪SSO授权、微信分享会出现异常。
- 微信登录需要在微信开放平台申请开发者认证获取登录权限,不然无法完成授权
示例代码
#
import
"UMSocial.h"
02.
#
import
"UMSocialWechatHandler.h"
03.
#
import
"UMSocialQQHandler.h"
04.
#
import
"UMSocialSinaHandler.h"
05.
06.
//友盟统计
07.
//友盟统计分析是一款专业的移动应用统计分析工具,致力于为开发者提供实时、稳定的移动应用统计分析服务,帮助开发者更好地了解用户、优化产品以及提升转化率。友盟统计分析客户端,可以方便开发者查看应用数据,随时随地掌握应用的运营状态。
08.
[MobClickstartWithAppkey:kUMengKeyreportPolicy:SEND_ON_EXITchannelId:nil];
/开启友盟统计
09.
[MobClick setAppVersion:XcodeAppVersion];
10.
[MobClick checkUpdate];
11.
12.
13.
//友盟授权
14.
[UMSocialData setAppKey:kUMengKey];
15.
//设置微信AppId,设置分享url,默认使用友盟的网址
16.
[UMSocialWechatHandler setWXAppId:kWXAppID appSecret:kWXAppKey url:@
"http://www.yshow.net"
];
17.
//打开新浪微博的SSO开关
18.
[UMSocialSinaHandler openSSOWithRedirectURL:@
"http://www.yshow.net"
];
19.
//设置分享到<a href="http://www.it165.net/qq/qqkj/" target="_blank" class="keylink">QQ空间</a>的应用Id,和分享url 链接
20.
[UMSocialQQHandler setQQWithAppId:kQQAppID appKey:kQQAppKey url:@
"http://www.yshow.net"
];
21.
//设置支持没有客户端情况下使用SSO授权
22.
[UMSocialQQHandler setSupportWebView:YES];
23.
24.
/**
25.
这里处理新浪微博SSO授权之后跳转回来,和微信分享完成之后跳转回来
26.
*/
27.
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
28.
{
29.
return
[UMSocialSnsService handleOpenURL:url wxApiDelegate:nil];
30.
}
31.
32.
/**
33.
这里处理新浪微博SSO授权进入新浪微博客户端后进入后台,再返回原来应用
34.
*/
35.
- (
void
)applicationDidBecomeActive:(UIApplication *)application
36.
{
37.
[UMSocialSnsService applicationDidBecomeActive];
38.
}
01.
#
import
"UMSocial.h"
02.
//<a href="http://www.it165.net/qq/" target="_blank" class="keylink">qq</a>登录
03.
- (
void
)<a href=
"http://www.it165.net/qq/"
target=
"_blank"
class
=
"keylink"
>qq</a>BtnClick:(UIButton *)btn
04.
{
05.
NSString *platformName = [UMSocialSnsPlatformManager getSnsPlatformString:UMSocialSnsTypeMobileQQ];
06.
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];
07.
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
08.
NSLog(@
"login response is %@"
,response);
09.
//获取微博用户名、uid、token等
10.
if
(response.responseCode == UMSResponseCodeSuccess) {
11.
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:platformName];
12.
NSLog(@
"username is %@, uid is %@, token is %@,iconUrl is %@"
,snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
13.
}
14.
});
15.
}
16.
//新浪登录
17.
- (
void
)sinaBtnClick:(UIButton *)btn
18.
{
19.
NSString *platformName = [UMSocialSnsPlatformManager getSnsPlatformString:UMSocialSnsTypeSina];
20.
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
21.
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
22.
NSLog(@
"response is %@"
,response);
23.
if
(response.responseCode == UMSResponseCodeSuccess) {
24.
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:platformName];
25.
NSLog(@
"=========%@"
,snsAccount.accessToken);
26.
}
27.
});
28.
}
29.
30.
//实现回调方法
31.
-(
void
)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
32.
{
33.
if
(response.viewControllerType == UMSViewControllerOauth) {
34.
NSLog(@
"didFinishOauthAndGetAccount response is %@"
,response);
35.
}
36.
}
01.
//分享
02.
typedef
enum
03.
{
04.
ShareQZone,
05.
ShareQQFriend,
06.
ShareWeiXinFriend,
07.
ShareQQWB,
08.
ShareSinaWB,
09.
}ShareMode;
10.
11.
#
import
"UMSocialSnsService.h"
12.
#
import
"UMSocialSnsPlatformManager.h"
13.
#
import
"UMSocial.h"
14.
15.
- (
void
)shareFootViewSureBtnDidClick:(YSShareFootView *)view index:(ShareMode)index
16.
{
17.
NSString *shareText = @
"wallpaper papehome。 http://www.wallPaper.com/social"
; //分享内嵌文字
18.
UIImage *shareImage = [[SDImageCache sharedImageCache] imageFromDiskCacheForKey:self.sharedImgUrl];
//分享内嵌图片
19.
20.
//如果得到分享完成回调,需要设置delegate为self
21.
// @param snsNames 你要分享到的sns平台类型,该NSArray值是`UMSocialSnsPlatformManager.h`定义的平台名的字符串常量,有UMShareToSina,UMShareToTencent,UMShareToRenren,UMShareToDouban,UMShareToQzone,UMShareToEmail,UMShareToSms等
22.
23.
[UMSocialSnsService presentSnsIconSheetView:self appKey:kUMengKey shareText:shareText shareImage:shareImage shareToSnsNames:@[UMShareToQzone,UMShareToQQ,UMShareToWechatSession,UMShareToTencent,UMShareToSina] delegate:self];
24.
return
;
25.
}
26.
27.
//下面得到分享完成的回调
28.
-(
void
)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity *)response
29.
{
30.
NSLog(@
"didFinishGetUMSocialDataInViewController with response is %@"
,response);
31.
//根据`responseCode`得到发送结果,如果分享成功
32.
if
(response.responseCode == UMSResponseCodeSuccess)
33.
{
34.
//得到分享到的微博平台名
35.
NSLog(@
"share to sns name is %@"
,[[response.data allKeys] objectAtIndex:
0
]);
36.
}
37.
}