iOS微博授权登录
2020-08-05 本文已影响0人
Geniune
第一步:申请微博开放平台移动应用
先要在开放平台注册并创建应用并配置Bundle ID,这里就不赘述了
应用创建成功后会获得AppKey,记录并备用
第二步:集成SDK到工程
将从GitHub上下载的libWeiboSDK文件夹添加至工程,SDK包含4个文件:
WeiboSDK.h
WBHttpRequest.h
libWeiboSDK.a
WeiboSDK.bundle
另外还要引入以下系统库:
QuartzCore.framework
ImageIO.framework
SystemConfiguration.framework
Security.framework
CoreTelephony.framework
CoreText.framework
UIKit.framework
Foundation.framework
CoreGraphics.framework
libz.tbd
libsqlite3.tbd
WebKit.framework
第三步:配置URL Scheme
打开Xcode选择project → Info → URL Types → 新增一个,URL Schemes填wb+AppKey(例如AppKey为204543436852,则URL Schemes为wb204543436852)
第四步:配置LSApplicationQueriesSchemes
打开Xcode找到info.plist,右击选择open as → source code
将下面代码添加进去:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
</array>
第五步: 向微博客户端程序注册并初始化
使用第一步中获得的AppKey初始化WeiboSDK
[WeiboSDK enableDebugMode:YES]; //设置调试模式
[WeiboSDK registerApp:@"wb204543436852"];
第六步:发起SSO客户端授权认证
WBAuthorizeRequest *request = [WBAuthorizeRequest request];
request.redirectURI = kRedirectURI;
request.scope = @"all";
request.userInfo = @{@"SSO_From": @"ViewControllerClassName",
@"Other_Info_1": [NSNumber numberWithInt:123],
@"Other_Info_2": @[@"obj1", @"obj2"],
@"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}};
[WeiboSDK sendRequest:request];
在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 ];
}
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response{
if ([response isKindOfClass:WBAuthorizeResponse.class]){
WBAuthorizeResponse *authorizeResponse = (WBAuthorizeResponse *)response;
if(authorizeResponse.statusCode == WeiboSDKResponseStatusCodeSuccess){
NSLog(@"用户ID = %@", authorizeResponse.userID);
NSLog(@"自定义信息字典 = %@", authorizeResponse.userInfo);
}
}
}
如果本文对你有所帮助记得点个赞哈:)