pexels-trung-nguyen-2747045.jpg
最近項目中開始有了微博分享網頁的需求,之前都是分享單圖的需求,想著這個需求實現起來也不難,但沒想到給了我個小驚喜。好了,話不多說,開始正文。項目中的微博分享是好久之前就已經加進去了,想著只是切換個分享的方式而已,并沒有多么復雜,但在做的過程中卻遇到了不少坑。
進入到微博開放平臺,下載了個
Demo
,然后按照Demo
中的方式,將代碼copy
到項目中,具體代碼如下:
WBMessageObject *message = [WBMessageObject message];
WBWebpageObject *webpage = [WBWebpageObject object];
webpage.objectID = @"identifier1";
webpage.title = NSLocalizedString(@"分享網頁標題", nil);
webpage.description = [NSString stringWithFormat:NSLocalizedString(@"分享網頁內容簡介-%.0f", nil), [[NSDate date] timeIntervalSince1970]];
webpage.thumbnailData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image_2" ofType:@"jpg"]];
webpage.webpageUrl = @"http://weibo.com/p/1001603849727862021333?rightmod=1&wvr=6&mod=noticeboard";
message.mediaObject = webpage;
WBAuthorizeRequest *authRequest = [WBAuthorizeRequest request];
authRequest.redirectURI = @"";
authRequest.scope = @"all";
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message authInfo:authRequest access_token: nil];
[WeiboSDK sendRequest:request completion:nil];
結果發現,分享到微博之后,圖片并沒有顯示,如下圖所示:
IMG_0183.JPG
查看微博開放平臺
FAQ
,發現有針對該問題的解決方案,如下:
Q:WBWebpageObject 分享之后不顯示縮略圖 是什么原因
- A:移動應用商務合作,移動SDK中的LinkCard和附件欄集成分享權限需要合作申請,商務對接請發郵件至:yuqing1@staff.sina.com.cn
既然說是需要申請權限,那我就去開放平臺上面去查看了下權限,發現該申請的權限都申請到了,這就很尷尬,到底是什么原因造成的呢,突然想到,可以看看別的平臺是怎么做的,結果發現餓了么分享網頁的頁面如下圖:
IMG_0182.JPG
看到這個分享的方式,想起了項目中分享圖片時的寫法,然后將分享圖片時的內容拼接一下,以標題和分享鏈接組合成新的標題,具體代碼實現如下:
WBMessageObject *message = [WBMessageObject message];
message.text = [NSString stringWithFormat:@"%@ %@",@"我的肌膚報告",@"http://weibo.com/p/1001603849727862021333?rightmod=1&wvr=6&mod=noticeboard"];
WBImageObject *imageObject = [WBImageObject object];
imageObject.imageData = UIImageJPEGRepresentation(self.FXimage, 0.65);
imageObject.delegate = self;
message.imageObject = imageObject;
WBAuthorizeRequest *authRequest = [WBAuthorizeRequest request];
authRequest.redirectURI = @"";
authRequest.scope = @"all";
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message authInfo:authRequest access_token: nil];
[WeiboSDK sendRequest:request completion:nil];
運行起來之后,分享之后,如下圖所示:
IMG_0184.JPG
到這里,就實現了微博分享網頁的需求。最后,再吐槽一下微博開放平臺的文檔,是真的寫的亂,希望可以改進一下,太難找了。。。