码迷,mamicode.com
首页 > 其他好文 > 详细

新浪微博 SSO授权登陆笔记

时间:2016-04-09 15:17:32      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:

  0. 使用xcode创建一个项目 ThirdLogin_weibo

  1. 打开新浪微博的开发者平台, 添加一个应用 "迷途SKY"(随便写)

     1)配置应用的基本信息:

    >Bundle ID 一定要与  ThirdLogin_weibo 的Bundle identifier 一致, 否则会有bug  

    >在高级信息中添加授权回调页url: https://api.weibo.com/oauth2/default.html 参考文档建议填写的url

           > 其他的参数可以随便填

  2. 选择 "文档" -> "移动应用" -> "移动应用SSO授权"  下载SDK

  3. 项目中导入"libWeiboSDK"文件  参考开发文档

   > 配置: 选择 "BuildSetting" -> 搜索"Other Linker Flags"   添加 "-ObjC"

   > 添加框架依赖:CoreGraphics.framework CoreText.framework CoreTelephony.framework Security.framework

          SystemConfiguration.framework ImageIO.framework QuartzCore.framework libz.tbd

           libsqlite3.tbd  参考SDK文档

   > 配置URL Scheme:  在info.plist 添加URL types  URL Schemes=wb1883208243(wb+appkey) URL identifier=com.weibo

   > info.plist中 配置一下 xcode7开始的网络请求安全机制  

     4.代码示例

    >在appDelegate中导入 "WeiboSDK.h"

    >在appDelegate的  didFinishLaunchingWithOptions 方法中 打开微博sdk的调试功能和注册appkey

    [WeiboSDK enableDebugMode:YES];

           [WeiboSDK registerApp:kAppKey]; // kAppKey 添加微博应用获取的appkey

        >在appDelegate 添加下面两个方法:         

- (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 ];
}

   > 在appDelegate 添加获取授权结果的代理方法  

/**
 收到一个来自微博客户端程序的响应
 
 收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能
 @param response 具体的响应对象
 */
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response{
    
    // 是授权响应
    if ([response isKindOfClass:[WBAuthorizeResponse class]]) {
        
        WBAuthorizeResponse *wbRes = (WBAuthorizeResponse *)response;
        
        NSLog(@"%@, %@, %@, %@", wbRes.userID, wbRes.accessToken, wbRes.expirationDate, wbRes.refreshToken);

     // 获取到
accessToke 发送请求到微博的 获取用户的 信息
} } - (void)didReceiveWeiboRequest:(WBBaseRequest *)request{ }

  在ViewController 中添加一个 登陆按钮 发送登陆请求 获取授权 accessToke

#define kRedirectURI @"https://api.weibo.com/oauth2/default.html" // 微博回调页

#import "ViewController.h"
#import "WeiboSDK.h"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction)loginClick:(id)sender {
    
    
    WBAuthorizeRequest *request = [WBAuthorizeRequest request];
    request.redirectURI = kRedirectURI;
    request.scope = @"all";
  // userinfo 字段可以不写, 当获取到授权信息是可以在代理方法中获取 userinfo和accessToken等信息 可以用于校验 request.userInfo
= @{@"SSO_From": @"SendMessageToWeiboViewController", @"Other_Info_1": [NSNumber numberWithInt:123], @"Other_Info_2": @[@"obj1", @"obj2"], @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}}; [WeiboSDK sendRequest:request]; } @end

 

    

新浪微博 SSO授权登陆笔记

标签:

原文地址:http://www.cnblogs.com/Life-GJB/p/5371577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!