分享、第三方登陸:
1.首先注冊(cè)需要分享平臺(tái)的賬號(hào)(本次介紹三個(gè)平臺(tái):微信、QQ和微博,其他平臺(tái)類似)
1.1.平臺(tái)鏈接
微信平臺(tái):
QQ平臺(tái):
微博平臺(tái):
1.2.遇到問(wèn)題(下面是一些需要注意的問(wèn)題,其他的信息都是看著填的,一看就知道了)
1.2.1.App圖標(biāo)(微信和QQ真特么的變態(tài)茂卦,MD自己一個(gè)公司的都不能統(tǒng)一一下)
- 微信 應(yīng)用圖標(biāo)需要18x18png和108x108png
1.2.1.png
- QQ 需要16x16png和512x512png。還需要2-5張截圖
1.2.2.png
- 微博 不是必須用圖標(biāo)组哩,但是需要三個(gè)地方注意等龙。
1 AppleID,我才不會(huì)告訴別人我隨便寫(xiě)的
2 安全域名 這個(gè)是友盟必須這么寫(xiě)
sns.whalecloud.com
3 授權(quán)回調(diào)頁(yè) 這個(gè)也是填寫(xiě)友盟規(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)目伶贰,通過(guò)cocoaPods添加友盟蛛砰,具體步驟如果不會(huì)可以參考這個(gè)靠譜的鏈接cocoaPods使用介紹
4.從友盟上下載SDK,導(dǎo)入到工程中(具體步驟如下)
4.1.png
4.2.png
4.3.png
4.4.png
4.5.png
5.開(kāi)始配置項(xiàng)目環(huán)境了J蜓谩D喑!前方高能
5.1.png
6.剩下的就是代碼了
在AppDelegate里面配置主要有一下幾點(diǎn)
6.1 設(shè)置友盟社會(huì)化組件appkey
[UMSocialData setAppKey:UmengAppkey];
//打開(kāi)調(diào)試log的開(kāi)關(guān)
[UMSocialData openLog:YES];
6.2.1 初始化微信
設(shè)置微信AppId琅翻、appSecret位仁,分享url
[UMSocialWechatHandler setWXAppId:@"wxe06bfa7eb39db886" appSecret:@"b27bec3c35d61f487bca44f2f20351a9" url:@"http://www.umeng.com/social"];
//親測(cè)——這個(gè)url是用來(lái)替換上一行的url----朋友圈這個(gè)鏈接可以跳轉(zhuǎn)柑贞,給微信好友分享的卻不能?聂抢?一直跳轉(zhuǎn)到UMengDemo.原因是下面打開(kāi)了分享到APP借口23333
[UMSocialData defaultData].extConfig.wechatSessionData.url = @"http://baidu.com";
//這個(gè)是分享到朋友圈的鏈接
[UMSocialData defaultData].extConfig.wechatTimelineData.url = @"http://baidu.com";
//如果有鏈接钧嘶,這個(gè)就是鏈接的名稱
[UMSocialData defaultData].extConfig.wechatSessionData.title = @"FCL的測(cè)試";
/**
* UMSocialWXMessageTypeWeb
UMSocialWXMessageTypeText, //微信消息文本類型
UMSocialWXMessageTypeImage, //微信消息圖片類型
UMSocialWXMessageTypeApp, //微信消息應(yīng)用類型
UMSocialWXMessageTypeWeb, //微信消息網(wǎng)頁(yè)類型
GIF暫時(shí)不知道對(duì)應(yīng)哪個(gè)類型
*/
[UMSocialData defaultData].extConfig.wxMessageType = UMSocialWXMessageTypeImage;
//應(yīng)用分享類型點(diǎn)擊分享內(nèi)容后跳轉(zhuǎn)到應(yīng)用下載頁(yè)面,下載地址自動(dòng)抓取開(kāi)發(fā)者在微信開(kāi)放平臺(tái)填寫(xiě)的應(yīng)用地址涛浙,如果用戶已經(jīng)安裝應(yīng)用康辑,則打開(kāi)APP----如果APP沒(méi)上架,就會(huì)打開(kāi)默認(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 初始化微博
打開(kāi)新浪微博的SSO開(kāi)關(guān)我注,設(shè)置新浪微博回調(diào)地址,這里必須要和你在新浪微博后臺(tái)設(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 分享到微博的時(shí)候奔缠,會(huì)自帶一張圖片(這個(gè)就是自帶一張百度的圖標(biāo))----這個(gè)圖片會(huì)替換掉原來(lái)的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好友瞳步、來(lái)往好友闷哆、來(lái)往朋友圈、易信好友单起、易信朋友圈抱怔、Facebook、Twitter嘀倒、Instagram等平臺(tái)需要參考各自的集成方法
__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];
//需要往哪個(gè)平臺(tái)分享屈留,就在shraeToSnsNames:后面添加
[UMSocialSnsService presentSnsIconSheetView:self
appKey:@"56d79f9b67e58e37050002ee"
shareText:shareText
shareImage:image
shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToWechatSession,UMShareToWechatTimeline,UMShareToQQ,UMShareToQzone,nil]
delegate:self];
// 彈出橫屏頁(yè)面必須要先使用如下設(shè)置屏幕方向的代碼,再?gòu)棾龇窒砹斜眄?yè)面:
// [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 微博第三方登錄(無(wú)法進(jìn)行登錄)那是因?yàn)锳ppDelegate里面少了一句
//打開(kāi)調(diào)試log的開(kāi)關(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);
}});
}