程胖出品——友盟开发步骤
2016-03-07 本文已影响567人
胖子程
分享、第三方登陆:
1.首先注册需要分享平台的账号(本次介绍三个平台:微信、QQ和微博,其他平台类似)
1.1.平台链接
微信平台:
QQ平台:
微博平台:
1.2.遇到问题(下面是一些需要注意的问题,其他的信息都是看着填的,一看就知道了)
1.2.1.App图标(微信和QQ真特么的变态,MD自己一个公司的都不能统一一下)
- 微信 应用图标需要18x18png和108x108png
- QQ 需要16x16png和512x512png。还需要2-5张截图
- 微博 不是必须用图标,但是需要三个地方注意。
1 AppleID,我才不会告诉别人我随便写的
2 安全域名 这个是友盟必须这么写
sns.whalecloud.com
3 授权回调页 这个也是填写友盟规定的
http://sns.whalecloud.com/sina2/callback
2.剩下的步骤就是仔仔细细看下分享详细集成 2.1.png
3.创建项目,通过cocoaPods添加友盟,具体步骤如果不会可以参考这个靠谱的链接cocoaPods使用介绍
4.从友盟上下载SDK,导入到工程中(具体步骤如下)
4.1.png 4.2.png 4.3.png 4.4.png 4.5.png5.开始配置项目环境了!!!前方高能
5.1.png6.剩下的就是代码了
在AppDelegate里面配置主要有一下几点
6.1 设置友盟社会化组件appkey
[UMSocialData setAppKey:UmengAppkey];
//打开调试log的开关
[UMSocialData openLog:YES];
6.2.1 初始化微信
设置微信AppId、appSecret,分享url
[UMSocialWechatHandler setWXAppId:@"wxe06bfa7eb39db886" appSecret:@"b27bec3c35d61f487bca44f2f20351a9" url:@"http://www.umeng.com/social"];
//亲测——这个url是用来替换上一行的url----朋友圈这个链接可以跳转,给微信好友分享的却不能??一直跳转到UMengDemo.原因是下面打开了分享到APP借口23333
[UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://baidu.com";
//这个是分享到朋友圈的链接
[UMSocialData defaultData].extConfig.wechatTimelineData.url = @"http://baidu.com";
//如果有链接,这个就是链接的名称
[UMSocialData defaultData].extConfig.wechatSessionData.title = @"FCL的测试";
/**
* UMSocialWXMessageTypeWeb
UMSocialWXMessageTypeText, //微信消息文本类型
UMSocialWXMessageTypeImage, //微信消息图片类型
UMSocialWXMessageTypeApp, //微信消息应用类型
UMSocialWXMessageTypeWeb, //微信消息网页类型
GIF暂时不知道对应哪个类型
*/
[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
//应用分享类型点击分享内容后跳转到应用下载页面,下载地址自动抓取开发者在微信开放平台填写的应用地址,如果用户已经安装应用,则打开APP----如果APP没上架,就会打开默认的链接
// [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;
6.2.2 初始化QQ
设置手机QQ 的AppId,Appkey,和分享URL,需要
#import "UMSocialQQHandler.h"
[UMSocialQQHandler setQQWithAppId:@"1105151305" appKey:@"EOR5DzF7XQskCBsz" url:@"http://www.umeng.com/social"];
6.2.3 初始化微博
打开新浪微博的SSO开关,设置新浪微博回调地址,这里必须要和你在新浪微博后台设置的回调地址一致。需要
#import "UMSocialSinaSSOHandler.h"
[UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"4217703336"
secret:@"915ce2a4488cacdc26bd22894ad5e6d2"
RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
//2.3.1 直接分享——好直接,直接跳转到微博不需要跳出下面的actionsheet。
/*
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToSina] content:@"分享内嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){
if (shareResponse.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];*/
//2.3.2 分享到微博的时候,会自带一张图片(这个就是自带一张百度的图标)----这个图片会替换掉原来的GIF或者图片
// [[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeImage url:@"http://www.baidu.com/img/bdlogo.gif"];
// [[UMSocialData defaultData].urlResource setResourceType:UMSocialUrlResourceTypeVideo url:@"http://v.youku.com/v_show/id_XNjQ1NjczNzEy.html?f=21207816&ev=2"];
7.分享核心代码
//注意:分享到微信好友、微信朋友圈、微信收藏、QQ空间、QQ好友、来往好友、来往朋友圈、易信好友、易信朋友圈、Facebook、Twitter、Instagram等平台需要参考各自的集成方法
__weak typeof(self) weakSelf = self;
NSString *shareText = @"分享本地GIF";
UIImage *image = [UIImage imageNamed:@"海盗大白.jpg"];
NSString *path = [[NSBundle mainBundle] pathForResource:@"小炮兵" ofType:@"gif"];
NSData *gifData = [NSData dataWithContentsOfFile:path];
//需要往哪个平台分享,就在shraeToSnsNames:后面添加
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"56d79f9b67e58e37050002ee"
shareText:shareText
shareImage:image
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToWechatSession,UMShareToWechatTimeline,UMShareToQQ,UMShareToQzone,nil]
delegate:self];
// 弹出横屏页面必须要先使用如下设置屏幕方向的代码,再弹出分享列表页面:
// [UMSocialConfig setSupportedInterfaceOrientations:UIInterfaceOrientationMaskLandscape];
8.第三方登陆核心代码
8.1 QQ第三方登录(直接就可以登录了,成功)
- (void)LoginQQ
{
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToQQ];
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
// 获取微博用户名、uid、token等
if (response.responseCode == UMSResponseCodeSuccess) {
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToQQ];
NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
}});
}
8.2 微博第三方登录(无法进行登录)那是因为AppDelegate里面少了一句
//打开调试log的开关
//[UMSocialData openLog:YES];
- (void)LoginWeibo
{
UMSocialSnsPlatform *snsPlatform = [UMSocialSnsPlatformManager getSocialPlatformWithName:UMShareToSina];
snsPlatform.loginClickHandler(self,[UMSocialControllerService defaultControllerService],YES,^(UMSocialResponseEntity *response){
// 获取微博用户名、uid、token等
if (response.responseCode == UMSResponseCodeSuccess) {
UMSocialAccountEntity *snsAccount = [[UMSocialAccountManager socialAccountDictionary] valueForKey:UMShareToSina];
NSLog(@"username is %@, uid is %@, token is %@ url is %@",snsAccount.userName,snsAccount.usid,snsAccount.accessToken,snsAccount.iconURL);
}});
}