分享、第三方登陸:
1.首先注冊需要分享平臺的賬號(本次介紹三個平臺:微信、QQ和微博,其他平臺類似)
1.1.平臺鏈接
微信平臺:
QQ平臺:
微博平臺:
1.2.遇到問題(下面是一些需要注意的問題,其他的信息都是看著填的,一看就知道了)
1.2.1.App圖標(微信和QQ真特么的變態,MD自己一個公司的都不能統一一下)
- 微信 應用圖標需要18x18png和108x108png
1.2.1.png
- QQ 需要16x16png和512x512png。還需要2-5張截圖
1.2.2.png
- 微博 不是必須用圖標,但是需要三個地方注意。
1 AppleID,我才不會告訴別人我隨便寫的
2 安全域名 這個是友盟必須這么寫
sns.whalecloud.com
3 授權回調頁 這個也是填寫友盟規定的
http://sns.whalecloud.com/sina2/callback
1.2.3.png
1.2.4.png
2.剩下的步驟就是仔仔細細看下分享詳細集成
2.1.png
3.創建項目,通過cocoaPods添加友盟,具體步驟如果不會可以參考這個靠譜的鏈接cocoaPods使用介紹
4.從友盟上下載SDK,導入到工程中(具體步驟如下)
4.1.png
4.2.png
4.3.png
4.4.png
4.5.png
5.開始配置項目環境了!!!前方高能
5.1.png
6.剩下的就是代碼了
在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);
}});
}