iOS开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现
相关资源地址:
本项目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
- pod "WeiboSDK"
2. 手动导入sdk
3. 添加依赖库。
5. 针对iOS9的相关问题。
- <key>LSApplicationQueriesSchemes</key>
- <array>
- <string>sinaweibohd</string>
- <string>sinaweibo</string>
- <string>weibosdk</string>
- <string>weibosdk2.5</string>
- </array>
- 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. 正式进行相关编程了。
- 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开发之第三方登录微博-- 史上最全最新第三方登录微博方式实现的更多相关文章
- iOS开发之第三方登录微信-- 史上最全最新第三方登录微信方式实现
项目地址 : https://github.com/zhonggaorong/weixinLoginDemo 最新版本的微信登录实现步骤实现: 1.在进行微信OAuth2.0授权登录接入之前,在 ...
- iOS开发之第三方登录QQ -- 史上最全最新第三方登录QQ方式实现
项目地址 : https://github.com/zhonggaorong/QQLoginDemo/tree/master 最新版本的qq登录实现步骤实现: 1. 首先,你需要去向腾讯申请账号. ...
- 史上最全最新java面试题合集二(附答案)
下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 51.类ExampleA继承Exception,类ExampleB继承ExampleA. 有如下代码片断 ...
- React Native常用第三方组件汇总--史上最全 之一
React Native 项目常用第三方组件汇总: react-native-animatable 动画 react-native-carousel 轮播 react-native-countdown ...
- React Native常用第三方组件汇总--史上最全[转]
本文出处: http://blog.csdn.net/chichengjunma/article/details/52920137 React Native 项目常用第三方组件汇总: react-na ...
- iOS分类(category),类扩展(extension)—史上最全攻略
背景: 在大型项目,企业级开发中多人同时维护同一个类,此时程序员A因为某项需求只想给当前类currentClass添加一个方法newMethod,那该怎么办呢? 最简单粗暴的方式是把newMethod ...
- 史上最全最新Java面试题合集一(附答案)
下面小编整理了本套java面试题全集,分享给大家,希望对大家的java学习和就业面试有所帮助. 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: 抽象:抽象是将一类对象的共同特征 ...
- 开源框架】Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发
[原][开源框架]Android之史上最全最简单最有用的第三方开源库收集整理,有助于快速开发,欢迎各位... 时间 2015-01-05 10:08:18 我是程序猿,我为自己代言 原文 http: ...
- 了解iOS消息推送一文就够:史上最全iOS Push技术详解
本文作者:陈裕发, 腾讯系统测试工程师,由腾讯WeTest整理发表. 1.引言 开发iOS系统中的Push推送,通常有以下3种情况: 1)在线Push:比如QQ.微信等IM界面处于前台时,聊天消息和指 ...
随机推荐
- C 查找子字符串
自己用 C 写的一个查找子字符串的函数 int findstr(char *str,char *substr) //C实现 find{ if(NULL == str || NULL== substr) ...
- nyist0j 35 表达式求值
题目链接:表达式求值 该题以前做过但是WA了,今天终于把他解决了,各种悲剧啊,又是考虑不周到啊................... 所以贴出来纪念一下,并作为一个警示 /**** ps:注意当遇到 ...
- .net mvc笔记4_依赖注入
一.Building Loosely Coupled Components MVC模式最重要的特点就是关注点分离.我们希望应用中的组件能尽可能的独立,相互之间即使有依赖也要在我们的控制之下. 在理想情 ...
- Mac使用技巧
外接显示器的生活,在 系统偏好设置--显示器--排列中,点击那个白色的条,可以设置主显示器.
- grunt api 文档
Grunt docs Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. 安装 grunt-cli npm install grunt-cli -g 注 ...
- 谷歌日志库GLog 使用说明
1 引用头文件 加载库 #include <glog/include/logging.h> #pragma comment(lib,"libglog.lib") 2 初 ...
- rsyslog 基本组成
Facility 定义日志消息的来源,以方便对日志进行分类,facility 有以下几种: --kern 内核消息 --user 用户级消息 --mail 邮件系统消息 --daemon 系统服务消息 ...
- 几个学习Maven不错的网址
几个学习Maven不错的网址:---------------------------------------------------1.Maven官方网站 http://maven.apache.or ...
- Apache Maven-AntRun-Plugin 官网 bug
Maven AntRun Plugin 今天在 Apache maven-antrun-plugin 官网查找资料时,竟然发现了一个bug!! 在此记录下,以免在同一个地方摔倒两次! 想起一句话,尽信 ...
- ubuntu 16.04环境配置
ubuntu 16:1.源cp /etc/apt/sources.list /etc/apt/sources.list.bkpvi /etc/apt/sources.list-+{ deb ht ...