IOS 腾讯微博开放平台 SDK 初体验
第三方登录 SDK 界最烂的是人人毋庸置疑,其次是腾讯,QQ、空间、微信、腾讯微博各自一套 SDK 是闹哪样。
这是今天早上使用腾讯开放平台被折磨的半死不活的时候写的微博。这是我遇到的问题。而且这种登录方式似乎必须要求有 QQ 空间客户端?放弃这个 SDK,转向了腾讯微博开放平台。
1.创建新的接入应用获取 Key、Secret
这是链接,不多说。
2.下载SDK
SDK
git clone https://github.com/heloyue/TCWeiboSDK
3.加入工程
- 把文件夹中的 doc 文件夹删除,Xcode 会在编译的时候弹出警告(内含 html、css 等文件)
-
把三个 .a 文件删除到只剩 libTCWeiboSDK.a 不然编译会报错
linker command failed with exit code 1 (use -v to see invocation)
- 引入库:Account.framework, Security.framework 和 Social.framework。
- TARGET => info =》URL Types,新增一个。URL Schemes 中填:wb88888888(88888888为 Key 值)
4.开始写代码
1.在 AppDelegate.h 中
加入
@property (strong, nonatomic) PersonalCenterViewContro ller *viewController;//PersonalCenterViewContro ller 是我的 ViewController 这里作为例子,替换成你的
2.在 AppDelegate.m 中
实现这两个方法
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [self.viewController.weiboApi handleOpenURL:url];//这里的 weiboApi 待会儿再声明
}
//Available in iOS 4.2 and later.
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [self.viewController.weiboApi handleOpenURL:url];
}
3.在 ViewController.h 中
导入头文件
#import "WeiboApi.h"
声明 weiboApi
@interface PersonalCenterViewContro ller : UIViewController{
WeiboApi* weiboApi;
}
@property (weak, nonatomic) IBOutlet UIButton *OAuth;
@property (nonatomic,retain) WeiboApi* weiboApi;
@end
4.在 ViewController.m 中
-
实例化 weiboApi
weiboApi = [[WeiboApi alloc]initWithAppKey:Key andSecret:Secret andRedirectUri:REDIRECTURI andAuthModeFlag:0 andCachePolicy:0] ;
-
实现回调函数
//授权成功的回调函数 - (void)DidAuthFinished:(WeiboApiObject *)wbobj { NSString *str = [[NSString alloc]initWithFormat:@"accesstoken = %@\r\n openid = %@\r\n appkey=%@ \r\n appsecret=%@ \r\n refreshtoken=%@ ", wbobj.accessToken, wbobj.openid, wbobj.appKey, wbobj.appSecret, wbobj.refreshToken]; self.result.text = str; NSLog(@"result = %@",str); //注意回到主线程,有些回调并不在主线程中,所以这里必须回到主线程 // dispatch_async(dispatch_get_main_queue(), ^{ // // [self showMsg:str]; // }); // NSLog(@"after add pic"); }