首先下载新浪微博iOS SDK

接入说明以及SDK下载地址为:SDK下载地址

下载的目录下有一个名为“微博iOS平台SDK文档V3.1.1.pdf”文件,里面详细介绍了接入过程。

下面介绍一下自己的接入过程。

1.在appDelegate.m中添加微博代理

#pragma mark ------------- 微博登录 回调 -----------------

- (void)didReceiveWeiboRequest:(WBBaseRequest *)request

{

}

- (void)didReceiveWeiboResponse:(WBBaseResponse *)response

{

if ([responseisKindOfClass:WBAuthorizeResponse.class])

{

NSString * userid = [(WBAuthorizeResponse *)responseuserID];

NSString * wbtoken = [(WBAuthorizeResponse *)responseaccessToken];

NSString * oathString = [NSStringstringWithFormat:@"https://api.weibo.com/2/users/show.json?uid=%@&access_token=%@",userid,wbtoken];//

NSMutableString * msg = [NSMutableStringstring];

if (NO_VALUE(userid)) {

[msg setString:ALERT_WEIBO_LOGIN_ERROR];

}

NSDictionary* para = [NSDictionarydictionaryWithObjectsAndKeys:oathString,@"para",msg,@"msg",nil];

[[NSNotificationCenterdefaultCenter] postNotificationName:NOTIFICATION_WEIBO_LOGINobject:niluserInfo:para];

#if DEBUG

NSString *message = [NSStringstringWithFormat:@"%@: %d\nresponse.userId: %@\nresponse.accessToken: %@\n%@: %@\n%@: %@",NSLocalizedString(@"响应状态",nil), (int)response.statusCode,[(WBAuthorizeResponse *)responseuserID], [(WBAuthorizeResponse *)responseaccessToken],  NSLocalizedString(@"响应UserInfo数据",nil), response.userInfo,NSLocalizedString(@"原请求UserInfo数据",nil), response.requestUserInfo];

MyNSLog(@"微博:%@",message);

#endif

}

}

2.添加WeiboLoginClass.h文件,内容为:

//

//  WeiboLoginClass.h

//

#import <Foundation/Foundation.h>

@class WeiboLoginClass;

@protocol WeiboLoginDelegate <NSObject>

@required

-(void) WeiboLogin:(WeiboLoginClass*) WeiboLoginClass  Result:(NSDictionary*) resultDic;

@end

@interface WeiboLoginClass : NSObject

@property (assign)id <WeiboLoginDelegate> delegate;

@property (nonatomic,strong)UIViewController * currentVC;

- (instancetype)initWithViewController:(UIViewController*) vc;

- (void) startAuthorize;

@end

添加WeiboLoginClass.m文件,内容为:

//

//  WeiboLoginClass.m

//

#import "WeiboLoginClass.h"

@implementation WeiboLoginClass

- (instancetype)initWithViewController:(UIViewController*) vc

{

self = [superinit];

if (self) {

// Custom initialization

self.currentVC = vc;

[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(getWeiboLoginNoti:)name:NOTIFICATION_WEIBO_LOGINobject:nil];

}

return self;

}

-(void) dealloc

{

[[NSNotificationCenterdefaultCenter] removeObserver:self];

}

-(void) startAuthorize

{

WBAuthorizeRequest *request = [WBAuthorizeRequestrequest];

request.redirectURI =WEIBO_REDIRECTURI;

request.scope = @"all";

request.userInfo =@{@"SSO_From":@"SendMessageToWeiboViewController",

@"Other_Info_1": [NSNumbernumberWithInt:123],

@"Other_Info_2": @[@"obj1", @"obj2"],

@"Other_Info_3":@{@"key1": @"obj1", @"key2": @"obj2"}};

[WeiboSDK sendRequest:request];

}

#pragma mark ---------- 微博登录 得到access_token后请求用户信息 --------------

-(void) getWeiboLoginNoti:(NSNotification*) noti

{

[self.currentVChideHud];

[[NSNotificationCenterdefaultCenter] removeObserver:self];

NSString* oath_url = [noti.userInfoobjectForKey:@"para"];

NSString* msg = [noti.userInfoobjectForKey:@"msg"];

if (NO_VALUE(msg)) {

dispatch_async(dispatch_get_main_queue(), ^{

#pragma warning -------------

NSError *err = nil;

NSMutableDictionary* dicData = [NSMutableDictionarydictionary];

err = [requestSyncServer requestSyncServerWithUrl:oath_url withReceiveDic:dicData];

if (err != nil) {

#if DEBUG

NSString* errString = [[NSStringalloc] initWithFormat:@"解析数据失败"];

MyNSLog(@"%@",errString);

#endif

[self.currentVCshowHint:ALERT_WEIBO_LOGIN_ERROR];

}else{

NSString* idstr = [dicData objectForKey:@"idstr"];

NSString* nickname = [dicData objectForKey:@"screen_name"];

NSString* avatar = [dicData objectForKey:@"avatar_large"];

if (!NO_VALUE(idstr) && !NO_VALUE(nickname) && !NO_VALUE(avatar)) {

//                NSNumber* typeWeibo = [NSNumber numberWithInteger:3];

//                [self.currentVC login2:[idstr lowercaseString] andNickname:nickname andAvatar:avatar andType:typeWeibo];

NSDictionary * resultDic = [NSDictionarydictionaryWithObjectsAndKeys:idstr,@"openid",avatar,@"avatar",nickname,@"nickname",nil];

[self.delegateWeiboLogin:selfResult:resultDic];

}

}

});

}else{

[self.currentVCshowHint:msg];

}

}

@end

3. 在调起授权的viewcontroller中

#pragma mark ----------- 点击微博登录 --------

- (IBAction)touchWeiboLoginButton:(id)sender {

MyNSLog(@"点击微博登录");

self.weibologinclass = [[WeiboLoginClassalloc] initWithViewController:self];

self.weibologinclass.delegate =self;

[self.weibologinclassstartAuthorize];

}

#pragma mark

#pragma mark - Weibologindelegate

-(void) WeiboLogin:(WeiboLoginClass *)WeiboLoginClass Result:(NSDictionary *)resultDic

{

[self.openIDsetString:[resultDic objectForKey:@"openid"]];

[self.figureurl_qq_2setString:[resultDic objectForKey:@"avatar"]];

[self.nicknamesetString:[resultDic objectForKey:@"nickname"]];

[selflogin:self.openIDandNickname:self.nicknameandAvatar:self.figureurl_qq_2];

}

iOS 第三方登录之 新浪微博登录相关推荐

  1. qq 新浪微博 第三方登录 api php,qq登录,新浪微博登录接口申请过程中遇到的问题...

    1,qq登录接口申请 申请地址是:http://connect.opensns.qq.com/,登录进去后,点击右上方的登录.然后填写信息就行了. 我遇到的问题是在域名审核时,域名审核就是不通过,没办 ...

  2. php新浪微博 登录接口文档,qq登录,新浪微博登录接口申请过程中遇到的问题

    接口申请下来了,开发很容易的,参数传到就可以了.以前就做过这方面的开发,但是申请还是第一次,网上有关这方面的东东不是很多,所以记录一下申请过程. 1,qq登录接口申请 申请地址是:http://con ...

  3. android接入原生第三方登录(微信登录、QQ登录、新浪微博登录)

    第一步:去对应的平台上注册app的相关信息,这一步,可参考我的另外一个篇,关于接入亲加通信云的文章 各个平台注册应用信息的地址如下:                新浪微博               ...

  4. SpringBoot - OAuth2第三方登录之新浪微博登录

    之前写过一篇OAuth2 - 第三方登录之微信登录,但是微信的开放平台的资质需要有公司/企业才能注册.如果是个人的话,可以使用其他个人开发者就可以使用的.比如QQ.新浪微博. QQ的话,需要审核之后才 ...

  5. 网站绑定 qq 登录和 新浪微博 登录

    今天是我在第一个公司实习的倒计时2天了,已经快3个月了,由于时间关系,月底就辞职准备做毕业设计了.最近一个任务是给网站加 qq 登录和 微博 登录 的功能,前2天一直没搞定,昨晚有了点思绪,到今天中午 ...

  6. java 第三方登录之新浪微博登录

    大家好,一起学习交流吧! 一开始,我也想着找网上的一些demo来看看,但找不到完整的demo,就只好自己摸索,一开始会觉得这是很难的开发,但当你完成了以后,你会发现,其实没那么可怕,很简单的,而且,你 ...

  7. Android三方登录之新浪微博登录

    移动端需要尽可能的去减少用户的操作,拿登录来说,使用第三方登录一键登录自然在一定程度上优于传统的短信验证码. 那么集成新浪微博的一键登录需要哪些步骤呢? 1.在新浪后台注册应用,拿到关键ID. 2.集 ...

  8. 第三方插件使用以及qq,新浪微博登录

    写这些东西,第一是为了记录,第二是为了分享 多说评论的使用: 多说评论使用后如上图,可以用qq,微信,新浪微博,人人网等登录进行评论,那么现在教你如何使用: 第一:进入多说官网,http://duos ...

  9. iOS 第三方登录(QQ 微信 新浪微博)

    一.QQ登录 1.登录腾讯开放平台,创建一个应用,获取APP_KEY和APP_ID 2.下载对应的SDK 3.下载 iOS SDK环境搭建 1.导入SDK,配置工程 1.下载SDK到本地后,将SDK拖 ...

最新文章

  1. java实现多线程的方式并源码分析
  2. 数据中心服务器网络接入技术 — VEB、VEPA、VN-Tag
  3. 对手机图标整理事件总结
  4. [转]sudoers设置
  5. Java文件File操作一:文件的创建和删除
  6. 谷歌、微软、亚马逊6个惊人的A/B测试实例
  7. windows nginx 停止和启动_大数据离线项目实践之nginx服务器搭建
  8. PHP网站开启gzip压缩,PHP网站程序中开启Gzip压缩的两种方法
  9. i510200h和i78750h哪个好
  10. 写在今年(2022)清明节前
  11. word里面搜狗输入法突然不见了
  12. java jersey使用总结_Java Jersey2使用总结
  13. win10安装系统教程
  14. 通过U盘安装Windows11时遇此设备不支持升级时的解决办法
  15. 杭电一学生还没毕业年薪已过百万,带十几人的研发团队
  16. 推荐一款word转pdf超好用的包:aspose-words(解决中文乱码)
  17. win10系统桌面快捷方式图标变为白色方块如何解决
  18. ...可变形参的使用
  19. 学校永远不会教你的财富课:养鹅
  20. 频率学派与贝叶斯学派(先验分布与后验分布,MLE和MAP)

热门文章

  1. 只有170字节,最小的64位Hello World程序这样写成
  2. 科技公司LOGO在线制作设计
  3. python识别图片中的二维码_python3+pyzbar+Image 进行图片二维码识别
  4. PCB电路板3D渲染电路板3D效果图制作方法的一点思路
  5. Python 数据挖掘之电力窃漏电用户自动识别
  6. Odoo产品分析 (三) -- 人力资源板块(3) -- 休假管理(1)
  7. 【云原生之Docker实战】使用Docker部署phpMyAdmin数据库管理工具
  8. 常见浏览器及其内核(国际)
  9. 使用python的wordcloud包实现中文标签云制作
  10. word中选中所有拼音