相关资源地址:

本项目demo地址 :   https://github.com/zhonggaorong/weiboSDKDemo

最新SDK下载:  最新微博SDK

官网注册地址:点击打开链接

最新版本的微博登录实现步骤实现:

1. 使用此SDK需满足以下条件:

  • 在新浪微博开放平台注册并创建应用
  • 已定义本应用的授权回调页
  • 已选择应用为iOS平台,并正确填写Bundle id和apple id  (要与Xcode 工程中的bundle相对应)

注: 关于授权回调页对移动客户端应用来说对用户是不可见的,所以定义为何种形式都将不影响,但是没有定义将无法使用SDK认证登录。建议使用默认回调页 https://api.weibo.com/oauth2/default.html

2. 最新SDK目录结构预览:
3. 把SDK集成到工程。
1.  通过pod 集成。
pod "WeiboSDK"

2. 手动导入sdk

1.  把上面预览图上面的文件,全部拖入工程中。
 2.    Other Linker Flags  增加 -all_load.  (一定要把官方说的 -Objc 换成 -all_load) 好大一个坑。
  
       3. 添加依赖库。
        在   Target->Buid Phases->Link BinaryWith Libraries   下增加以下库:   QuartzCore.framework ImageIO.framework SystemConfiguration.framework Security.framework CoreTelephony.framework CoreText.framework UIKit.framework Foundation.framework CoreGraphics.framework libz.dylib libsqlite3.dylib
4. 编译工程。应该编译成功。
  5. 针对iOS9的相关问题。
            1. 你需要用到微博的相关功能,如登陆,分享等。并且需要实现跳转到微博的功能,在iOS9系统中就需要在你的app的plist中添加下列键值对。否则在canOpenURL函数执行时,就会返回NO。了解详情请至https://developer.apple.com/videos/wwdc/2015/?id=703
<key>LSApplicationQueriesSchemes</key>
<array><string>sinaweibohd</string><string>sinaweibo</string><string>weibosdk</string><string>weibosdk2.5</string>
</array>

     2. 增加url Types。
注意:  bundle ideatefier 一定要与 微博开发者后台要一致,不然会出现调试不成功,有以下错误出现。
Flag Status: -R ------- networkStatusForFlags
2016-06-21 15:18:31.556 weiboSDKDemo[906:299845] -canOpenURL: failed for URL: "weibosdk://" - error: "(null)"
2016-06-21 15:18:31.720 weiboSDKDemo[906:299845] Reachability Flag Status: -R ------- networkStatusForFlags
2016-06-21 15:18:33.350 weiboSDKDemo[906:299845] -[AppDelegate application:openURL:sourceApplication:annotation:]: unrecognized selector sent to instance 0x12d615090
2016-06-21 15:18:33.351 weiboSDKDemo[906:299845] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AppDelegate application:openURL:sourceApplication:annotation:]: unrecognized selector sent to instance 0x12d615090'
*** First throw call stack:
(0x1823fee38 0x181a63f80 0x182405ccc 0x182402aa4 0x182300d1c 0x100116a30 0x10021da7c 0x10021da3c 0x1002234e4 0x1823b4dd8 0x1823b2c40 0x1822dcd10 0x183bc4088 0x1875b1f70 0x1000d4f54 0x181e7a8b8)
libc++abi.dyli

4. 正式进行相关编程了。

appDelegate.m中
    1. 向微博进行注册微博, 通过申请的appkey。 
    2. 重写系统方法
application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{}
具体代码如下:
//
//  AppDelegate.h
//  weiboSDKDemo
//
//  Created by 张国荣 on 16/6/21.
//  Copyright © 2016年 BateOrganization. All rights reserved.
//#import <UIKit/UIKit.h>
#import "WeiboSDK.h"
@protocol WeiBoDelegate <NSObject>//登录的代理
-(void)weiboLoginByResponse:(WBBaseResponse *)response;
//分享的大力
-(void)weiboShareSuccessCode:(NSInteger)shareResultCode;
@end@interface AppDelegate : UIResponder <UIApplicationDelegate>@property (strong, nonatomic) UIWindow *window;
@property (weak  , nonatomic) id<WeiBoDelegate> weiboDelegate;@end
//
//  AppDelegate.m
//  weiboSDKDemo
//
//  Created by 张国荣 on 16/6/21.
//  Copyright © 2016年 BateOrganization. All rights reserved.
//#import "AppDelegate.h"
//申请下来的appkey
#define APP_KEY @"app key"@interface AppDelegate ()<WeiboSDKDelegate>@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.[WeiboSDK registerApp:APP_KEY];return YES;
}// 9.0 后才生效
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{return [WeiboSDK handleOpenURL:url delegate:self];
}#pragma mark 9.0之前
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{return [WeiboSDK handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation{return [WeiboSDK handleOpenURL:url delegate:self];
}/**收到一个来自微博客户端程序的请求收到微博的请求后,第三方应用应该按照请求类型进行处理,处理完后必须通过 [WeiboSDK sendResponse:] 将结果回传给微博@param request 具体的请求对象*/
- (void)didReceiveWeiboRequest:(WBBaseRequest *)request{ //向微博发送请求NSLog(@" %@",request.class);
}/**微博分享  与 微博登录,成功与否都会走这个方法。 用户根据自己的业务进行处理。收到一个来自微博客户端程序的响应收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能@param response 具体的响应对象*/
- (void)didReceiveWeiboResponse:(WBBaseResponse *)response{if ([response isKindOfClass:WBAuthorizeResponse.class])  //用户登录的回调{if ([_weiboDelegate respondsToSelector:@selector(weiboLoginByResponse:)]) {[_weiboDelegate weiboLoginByResponse:response];}}
}@end

调用登录的viewController.m 下面是具体的代码:

//
//  ViewController.m
//  weiboSDKDemo
//
//  Created by 张国荣 on 16/6/21.
//  Copyright © 2016年 BateOrganization. All rights reserved.
//#import "ViewController.h"
#import "WeiboSDK.h"
#import "AppDelegate.h"#define APP_REDIRECT_URL @"回调地址"
@interface ViewController ()<WeiBoDelegate>
{AppDelegate *delgate;
}
@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)weiboLoginAction:(id)sender {delgate = (AppDelegate *)[UIApplication sharedApplication].delegate;delgate.weiboDelegate = self;WBAuthorizeRequest *request = [WBAuthorizeRequest request];//回调地址与 新浪微博开放平台中 我的应用  --- 应用信息 -----高级应用    -----授权设置 ---应用回调中的url保持一致就好了request.redirectURI = APP_REDIRECT_URL;//SCOPE 授权说明参考  http://open.weibo.com/wiki/request.scope = @"all";request.userInfo = nil;[WeiboSDK sendRequest:request];
}-(void)weiboLoginByResponse:(WBBaseResponse *)response{NSDictionary *dic = (NSDictionary *) response.requestUserInfo;NSLog(@"userinfo %@",dic);}- (IBAction)weiboShareAction:(id)sender {
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end

iOS开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现相关推荐

  1. iOS开发之第三方登录QQ -- 史上最全最新第三方登录QQ方式实现

    项目地址 :  https://github.com/zhonggaorong/QQLoginDemo/tree/master 最新版本的qq登录实现步骤实现: 1. 首先,你需要去向腾讯申请账号. ...

  2. 大数据开发工程师基本功修炼之史上最全Linux学习笔记(建议)

    我正在参加年度博客之星评选,请大家帮我投票打分,您的每一分都是对我的支持与鼓励. 2021年「博客之星」参赛博主:Maynor大数据 (感谢礼品.红包免费送!) https://bbs.csdn.ne ...

  3. 对外汉语语料库有哪些_[转载]史上最全最新的语料库资源大全【对外汉语教学研究工具】...

    果断收藏!分享给好友!史上最全最新的语料库资源大全.本文持续更新,欢迎订阅期刊<对外汉语北京>以便获得最新通知! [期刊] International Journal of Corpus ...

  4. 魔域无法连接服务器或正在维护,史上最全魔域无法登录或登录超时原因与解决办法...

    本文成为今日优秀文章,获得270点可交易魔石的奖励 最近一段时间,老是听到玩家无法登录或登录超时的问题,官方给出的解释是电信和网通两大运营商串线了,还有就是新区人多的问题. 这些原因都是我们无法解决的 ...

  5. SpringBoot+SpringSecurity+JWT整合实现单点登录SSO史上最全详解

    作者:波波烤鸭 blog.csdn.net/qq_38526573/article/details/103409430 一.什么是单点登陆 单点登录(Single Sign On),简称为 SSO,是 ...

  6. 应该是史上最全最新Java和Android面试题目(自己总结和收集的)

    Android面试题目 Java 基础 int占用几个字节 讲一下常见编码方式? UTF-8编码下中文占几个字节 int和Interger的区别 int.char.long各占多少字节数 string ...

  7. 史上最全最新前端面试题(不定期更新,有问题欢迎评论区对线)

    一阶段面试题: CSS浮动怎么理解的 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 由于浮动框不在文档的普通流中,也就是脱离文档流,所以文档的普通流中的块框表现得就像 ...

  8. 史上最全最新微信小程序自动化教程

    背景 微信小程序作为现在流行的一种应用载体,很多小伙伴都有对其做自动化测试的需求,由于腾讯系QQ.微信等是基于腾讯自研X5内核,不是谷歌原生webview,所以调试会有些许差异(现在很多app产品也开 ...

  9. Java、eclipse、html、mysql 基础常见英语词汇及快捷键(2018史上最全最新最有用) 萌芽call - CSDN博客园

    第一章: JDK java开发工具包 Jvm java虚拟机 Javac 编译命令 Java 高级编程语言 Classpath 类路径 Version 版本 author 作者 eclipse 开发工 ...

最新文章

  1. 从Google Scholar看各大科技公司的科研水平
  2. 20多岁大专生吐槽:面试39岁同济大学毕业的测试专家,对方却连简单编程题都不会!...
  3. 系统集成项目管理工程师-项目人力资源管理笔记
  4. 3.strcpy使用注意(3)
  5. 自动查找并删除VC生成的临时文件
  6. 推荐系统遇上深度学习(七)--NFM模型理论和实践
  7. windows 批处理设置环境变量
  8. linux下图片加密原理,Linux中常见的加密技术介绍
  9. shell脚本批量导出MYSQL数据库日志/按照最近N天的形式导出二进制日志[连载之构建百万访问量电子商务网站]...
  10. windows命令行压缩解压缩
  11. 最高效“双11”背后:圆通更不一样了
  12. Ubuntu20.04中的Firefox缺少Flash插件无法播放视频
  13. 写了几个排序算法的测试
  14. 泛式的extends和supper
  15. 原理这就是索引下推呀
  16. C++ 跳跃游戏II
  17. JDK下载(jdk1.8下载与安装教程)
  18. 国内外常用数据库介绍
  19. Vue——邂逅Vue
  20. 爬取《Five Hundred Miles》在网易云音乐的所有评论

热门文章

  1. QT编写TCP/UDP调试助手之TCP客户端
  2. 服务器重装2012,Windows Server 2012安装初体验
  3. SSL1232雷达覆盖(normal)
  4. icode编程图形化|一级训练场|基础训练1
  5. 【超图+CESIUM】【基础API使用示例】50、超图|CESIUM - moveLeft\moveRight\moveForward\moveBackward实现运动中的碰撞检测效果
  6. 阿里云联合“产学研媒”发起 BizDevOps 共促计划,助力企业提升组织效能
  7. 数字基带传输系统无码间干扰的研究与仿真
  8. 关于汉字与Ascii码
  9. 机器学习西瓜书笔记:神经网络:BP算法公式推导
  10. 华三NS228交换机虚拟局域网划分方法