最近项目中开始有了微博分享网页的需求,之前都是分享单图的需求,想着这个需求实现起来也不难,但没想到给了我个小惊喜。好了,话不多说,开始正文。项目中的微博分享是好久之前就已经加进去了,想着只是切换个分享的方式而已,并没有多么复杂,但在做的过程中却遇到了不少坑。
进入到微博开放平台,下载了个
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];
结果发现,分享到微博之后,图片并没有显示,如下图所示:
查看微博开放平台
FAQ
,发现有针对该问题的解决方案,如下:
Q:WBWebpageObject 分享之后不显示缩略图 是什么原因
- A:移动应用商务合作,移动SDK中的LinkCard和附件栏集成分享权限需要合作申请,商务对接请发邮件至:yuqing1@staff.sina.com.cn
既然说是需要申请权限,那我就去开放平台上面去查看了下权限,发现该申请的权限都申请到了,这就很尴尬,到底是什么原因造成的呢,突然想到,可以看看别的平台是怎么做的,结果发现饿了么分享网页的页面如下图:
看到这个分享的方式,想起了项目中分享图片时的写法,然后将分享图片时的内容拼接一下,以标题和分享链接组合成新的标题,具体代码实现如下:
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];
运行起来之后,分享之后,如下图所示:
到这里,就实现了微博分享网页的需求。最后,再吐槽一下微博开放平台的文档,是真的写的乱,希望可以改进一下,太难找了。。。