微博开放平台微博SDK第三方登录

来源:互联网 发布:淘宝手机端装修尺寸 编辑:程序博客网 时间:2024/05/01 09:08

步骤一:添加应用

进入新浪微博开放平台(没有的话自行注册),进入“管理中心“,点击”创建应用”,选择“微链接应用”,再点击“创建应用”,,选“移动应用”,填写相应的信息,其中应用地址没有的话可随便,勾选平台后提交。注意保存你的App Key和App Secret以备后用。

步骤二:Oauth2.0授权设置

应用创建完后可以在“管理中心”-“我的应用”中查看信息,在“应用信息”–“高级信息”中可以设置网站的授权回调页和取消授权回调页。授权回调页会在用户授权成功后会被回调,同时传回一个“code”参数,开发者可以用code换取Access_Token值。当然如果是移动应用,比如本文是没有自己授权回调页的,建议这里填:https://api.weibo.com/oauth2/default.html 或者 http://www.baidu.com 之类的。如果授权后传回的形式如下:
https://api.weibo.com/oauth2/default.html?code=a6146547f981199c07348837b0629d5d

我们只要获取其中code的值a6146547f981199c07348837b0629d5d即可,注意code的值每次都是不一样的。

步骤三:在你要点击登录的地方调以下代码(注意这里的redirectURI写你自己的回调页)

  WBAuthorizeRequest *request = [WBAuthorizeRequest request];        request.redirectURI = @"你的授权回调页网址";        request.scope = @"all";        [WeiboSDK sendRequest:request];

步骤四:在appdelegate引入头文件,遵循代理WeiboSDKDelegate

#import "WeiboSDK.h"- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    [WeiboSDK enableDebugMode:YES];    [WeiboSDK registerApp:kAppKey];    return YES;}- (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];}/** 收到一个来自微博客户端程序的请求 收到微博的请求后,第三方应用应该按照请求类型进行处理,处理完后必须通过 [WeiboSDK sendResponse:] 将结果回传给微博 @param request 具体的请求对象 */- (void)didReceiveWeiboRequest:(WBBaseRequest *)request {    WBProvideMessageForWeiboResponse *response = [WBProvideMessageForWeiboResponse responseWithMessage:[self messageToShare]];    [WeiboSDK sendResponse:response];    NSLog(@"收到一个来自微博客户端程序的请求");}/** 收到一个来自微博客户端程序的响应 收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能 @param response 具体的响应对象 */- (void)didReceiveWeiboResponse:(WBBaseResponse *)response {    NSLog(@"收到一个来自微博客户端程序的响应");    // 这里response就是返回来的数据,包含token,uid等键值对;    NSLog(@"%@",response.userInfo);    NSString *theString = [NSString stringWithFormat:@"https://api.weibo.com/2/users/show.json?access_token=%@&uid=%@",response.userInfo[@"access_token"],response.userInfo[@"uid"]];    // 这里只是通过URL对数据进行请求,可以用系统的也可用AFNetworking,下面我使用对AFNetworking的简单封装过后的方法,请忽略    [NetWork netWorkWithPath:theString Params:[NSDictionary dictionary] CallBack:^(NSDictionary *info, NetType type) {     // 这里info就包含请求回来的用户头像等数据        NSLog(@"%@",info);    }];}- (WBMessageObject *)messageToShare {    WBMessageObject *message = [WBMessageObject message];    message.text = @"测试使用";    return message;}

!!!!如果输入账号后登录返回一个403错误,是因为项目还没有审核通过,或者没有添加测试账号,请至应用信息-测试信息 中添加测试账号

1 0
原创粉丝点击