1.在官网注册开发者账号,获得appKey,同时一定要设置回调页和Bundle iD(回调页可以先虽随便设置,Bundle iD要与程序中相同。targets->General->Bundle identifier)
2.设置工程回调URL Scheme,在targets->info->URL Types里添加,设置为wb+appkey。
3.将新浪分享原装框架导入程序,然后添加以下类库
4.在targets->Build Settings->Linking->Other Linker Flags中设置-ObjC。
5.设置appKey和授权回调页
#define kAppKey @"12345677888"
#define kRedirectURI @"http://www.baidu.com"
6.注册AppKey,如果有需要,可以打开Debug模式,不需要则关闭.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[WeiboSDK enableDebugMode:YES];
[WeiboSDK registerApp:kAppKey];
// Override point for customization after application launch.
return YES;
}
7.在AppDelegate.m中重写以下两个方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [WeiboSDK handleOpenURL:url delegate:self];
}
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WeiboSDK handleOpenURL:url delegate:self];
}
8.官方自带关注按钮实现
<pre name="code" class="objc"> AppDelegate *myDelegate =(AppDelegate*)[[UIApplication sharedApplication] delegate];
self.relationshipBtn = [[WBSDKRelationshipButton alloc] initWithFrame:CGRectMake(20, 460, 140, 30) accessToken:myDelegate.wbtoken currentUser:myDelegate.wbCurrentUserID followUser:@"2002619624" completionHandler:^(WBSDKBasicButton *button, BOOL isSuccess, NSDictionary *resultDict) {
NSString* accessToken = [resultDict objectForKey:@"access_token"];
if (accessToken)
{
myDelegate.wbtoken = accessToken;
}
NSString* uid = [resultDict objectForKey:@"uid"];
if (uid)
{
myDelegate.wbCurrentUserID = uid;
}
}];
9.官方自带分享功能
WBMessageObject *message = [WBMessageObject message];
message.text = @"测试";
WBAuthorizeRequest *authRequest = [WBAuthorizeRequest request];
authRequest.redirectURI = @"http://www.baidu.com";
authRequest.scope = @"all";
authRequest.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController",
@"Other_Info_1": [NSNumber numberWithInt:123],
@"Other_Info_2": @[@"obj1", @"obj2"],
@"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
WBSendMessageToWeiboRequest *request = [WBSendMessageToWeiboRequest requestWithMessage:message authInfo:authRequest access_token:kRedirectURI];
[WeiboSDK sendRequest:request];
10.官方自带权限获取功能
WBAuthorizeRequest *authRequest = [WBAuthorizeRequest request];
authRequest.redirectURI = @"http://www.baidu.com";
authRequest.scope = @"all";
authRequest.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController",
@"Other_Info_1": [NSNumber numberWithInt:123],
@"Other_Info_2": @[@"obj1", @"obj2"],
@"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
[WeiboSDK sendRequest:authRequest];
11.如果不想使用官方提供的发布器,可以自定义一个view,接受用户输入的文字或图片,然后将文字和图片直接发送到微博上,需要使用新浪微博提供的OpenAPI,需要注意的是,在使用此方法前,需要先申请authorize2.0的使用权限。
AppDelegate *myDelegate =(AppDelegate*)[[UIApplication sharedApplication] delegate];
[WBHttpRequest requestForShareAStatus:self.MessageFiled.text
contatinsAPicture:nil
orPictureUrl:nil
withAccessToken:myDelegate.wbtoken
andOtherProperties:nil
queue:[[NSOperationQueue alloc] init]
withCompletionHandler:^(WBHttpRequest *httpRequest, id result, NSError *error) {
}];
PS:测试时遇到了一点情况,查明后发现是错误10023,原因如下
微博API限制客户端每小时只能执行有限个请求。详述如下。 REST API Rate Limiting 默认REST API的访问限制是每小时150次,限制分用户和IP, 未授权的访问次数限制主要针对IP,登录后的请求访问限制主要针对用户。 普通授权限制情况: 请求限制:单用户每小时150次 发表微博:单用户每小时最大30次 发表评论:单用户每小时最大60次 发表私信:单用户每小时最大60次 添加关注:每小时最多添加关注60个,每天最多关注200个