为了增加MyEyes软件的互动性和推广,我们希望加入在测得视力后把结果分享到新浪微博的功能。不过由于新浪微博的审批程序的繁琐。在首次发布时,我们打算先屏蔽微博功能。但实际微博分享代码已经加入到程序里。下面就简单介绍下如何使用微博sdk。
1.首先从以下新浪开发者平台下载新浪微博SDK包。(当然,如果觉的对方挺供的sdk包封装的方法不好,也可以自己直接调用新浪提供的微博API,自己封装接口)
新浪微博iOS SDK下载
2.导入sdk到项目里。把sdk下的src文件里的内容,拖拽到自己的项目里。并添加Security.framework到项目里。
3.最关键的,就是要到open.weibo.com里去用自己新浪微博账号登陆,完成开发者信息。然后添加应用,就可以得到相应的App Key 和 App Secrect。用这个key和secrect就可以测试开发了。当然,这个测试发微博时,最多只能添加15个微博账号测试。如果需要更多的使用,就要去申请审批。审批流程就不在这里说了,大家可以去open.weibo.com上详细查阅。
下面简单说下sdk的使用方法。
最开始,要把申请到的AppKey和AppSecrect定义自己的项目里。
#define kWBSDKDemoAppKey @"53******24"
#define kWBSDKDemoAppSecret @"11d453a7***************3f1d9a62"
然后就可以使用sdk包里封装好的方法了。
1.微博登陆
WBEngine *engine = [[WBEngine alloc] initWithAppKey:kWBSDKDemoAppKey appSecret:kWBSDKDemoAppSecret]; [engine setRootViewController:self]; [engine setDelegate:self]; [engine setRedirectURI:@"http://"]; [engine setIsUserExclusive:NO]; self.weiBoEngine = engine; [self.weiBoEngine logIn];
这段代码只是简单的调用微博登陆验证的webview页面,目前sdk里的做法,在程序末关闭时,登陆后,会记录登陆信息,也就是说,只需登陆一次。
2.登陆后的回调
- (void)engine:(WBEngine *)engine didFailToLogInWithError:(NSError *)error { NSLog(@"didFailToLogInWithError: %@", error); UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:nil message:@"登录失败!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView show]; } - (void)engineDidLogOut:(WBEngine *)engine { UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:nil message:@"登出成功!" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView setTag:kWBAlertViewLogOutTag]; [alertView show]; } - (void)engineNotAuthorized:(WBEngine *)engine { } - (void)engineAuthorizeExpired:(WBEngine *)engine { UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:nil message:@"请重新登录!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView show]; }
3.微博发送
[weiBoEngine sendWeiBoWithText:[NSString stringWithFormat:@"我用视力宝测得视力 左眼:%@ 右眼:%@",resultLblLeft.text,resultLblRight.text] image:screenshotImage];
3. 发送后的回调
- (void)engine:(WBEngine *)engine requestDidSucceedWithResult:(id)result { NSLog(@"requestDidSucceedWithResult: %@", result); UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:nil message:@"成功发送到微博!" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView show]; } - (void)engine:(WBEngine *)engine requestDidFailWithError:(NSError *)error { NSLog(@"requestDidFailWithError: %@", error); NSNumber *errorCode = [error.userInfo objectForKey:@"error_code"]; NSLog(@"errorCode = %d", errorCode.intValue); switch (errorCode.intValue) { case 20019: { UIAlertView* alertView = [[UIAlertView alloc]initWithTitle:nil message:@"不要太贪心哦,发一次就够啦!" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alertView show]; break; } default: break; } }
错误代码查询
以上为sdk中提供的最简单的发送微博的方法。对于我们的MyEyes来说,这些功能也就够用了。仅供大家参考下。