分享、第三方登陸:
1.首先注冊需要分享平臺的賬號(本次介紹三個平臺:微信、QQ和微博,其他平臺類似)
1.1.平臺鏈接
微信平臺:
QQ平臺:
微博平臺:
1.2.遇到問題(下面是一些需要注意的問題,其他的信息都是看著填的,一看就知道了)
1.2.1.App圖標(biāo)(微信和QQ真特么的變態(tài),MD自己一個公司的都不能統(tǒng)一一下)
- 微信 應(yīng)用圖標(biāo)需要18x18png和108x108png

1.2.1.png
- QQ 需要16x16png和512x512png。還需要2-5張截圖

1.2.2.png
- 微博 不是必須用圖標(biāo),但是需要三個地方注意。
1 AppleID,我才不會告訴別人我隨便寫的
2 安全域名 這個是友盟必須這么寫
sns.whalecloud.com
3 授權(quán)回調(diào)頁 這個也是填寫友盟規(guī)定的
http://sns.whalecloud.com/sina2/callback

1.2.3.png

1.2.4.png
2.剩下的步驟就是仔仔細(xì)細(xì)看下分享詳細(xì)集成

2.1.png
3.創(chuàng)建項(xiàng)目,通過cocoaPods添加友盟,具體步驟如果不會可以參考這個靠譜的鏈接cocoaPods使用介紹
4.從友盟上下載SDK,導(dǎo)入到工程中(具體步驟如下)

4.1.png

4.2.png

4.3.png

4.4.png

4.5.png
5.開始配置項(xiàng)目環(huán)境了?。。∏胺礁吣?/p>

5.1.png
6.剩下的就是代碼了
在AppDelegate里面配置主要有一下幾點(diǎn)
6.1 設(shè)置友盟社會化組件appkey
[UMSocialData setAppKey:UmengAppkey];
//打開調(diào)試log的開關(guān)
[UMSocialData openLog:YES];
6.2.1 初始化微信
設(shè)置微信AppId、appSecret,分享url
[UMSocialWechatHandler setWXAppId:@"wxe06bfa7eb39db886" appSecret:@"b27bec3c35d61f487bca44f2f20351a9" url:@"http://www.umeng.com/social"];
//親測——這個url是用來替換上一行的url----朋友圈這個鏈接可以跳轉(zhuǎn),給微信好友分享的卻不能??一直跳轉(zhuǎn)到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, //微信消息應(yīng)用類型
UMSocialWXMessageTypeWeb, //微信消息網(wǎng)頁類型
GIF暫時不知道對應(yīng)哪個類型
*/
[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
//應(yīng)用分享類型點(diǎn)擊分享內(nèi)容后跳轉(zhuǎn)到應(yīng)用下載頁面,下載地址自動抓取開發(fā)者在微信開放平臺填寫的應(yīng)用地址,如果用戶已經(jīng)安裝應(yīng)用,則打開APP----如果APP沒上架,就會打開默認(rèn)的鏈接
// [UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeApp;
6.2.2 初始化QQ
設(shè)置手機(jī)QQ 的AppId,Appkey,和分享URL,需要
#import "UMSocialQQHandler.h"
[UMSocialQQHandler setQQWithAppId:@"1105151305" appKey:@"EOR5DzF7XQskCBsz" url:@"http://www.umeng.com/social"];
6.2.3 初始化微博
打開新浪微博的SSO開關(guān),設(shè)置新浪微博回調(diào)地址,這里必須要和你在新浪微博后臺設(shè)置的回調(diào)地址一致。需要
#import "UMSocialSinaSSOHandler.h"
[UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"4217703336"
secret:@"915ce2a4488cacdc26bd22894ad5e6d2"
RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
//2.3.1 直接分享——好直接,直接跳轉(zhuǎn)到微博不需要跳出下面的actionsheet。
/*
[[UMSocialDataService defaultDataService] postSNSWithTypes:@[UMShareToSina] content:@"分享內(nèi)嵌文字" image:nil location:nil urlResource:nil presentedController:self completion:^(UMSocialResponseEntity *shareResponse){
if (shareResponse.responseCode == UMSResponseCodeSuccess) {
NSLog(@"分享成功!");
}
}];*/
//2.3.2 分享到微博的時候,會自帶一張圖片(這個就是自帶一張百度的圖標(biāo))----這個圖片會替換掉原來的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];
// 彈出橫屏頁面必須要先使用如下設(shè)置屏幕方向的代碼,再彈出分享列表頁面:
// [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 微博第三方登錄(無法進(jìn)行登錄)那是因?yàn)锳ppDelegate里面少了一句
//打開調(diào)試log的開關(guān)
//[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);
}});
}