第三方登录(微博)

经过项目的测试,上线,现在第三方登录已经彻底通顺,并且对最近发布的IOS10做了适配(这里只对微博做分析)。

网上对新浪微博的第三方登录案例非常之多,相信这部分大多数同学都能够解决,利用第三方登录无非是导入第三方库,然后使用[WeiboSDK handleOpenURL:url delegate:self];即可完成登录功能。

但是既然使用第三方,我们更多的是使用第三方的信息,这里我们以获取第三方(微博)用户信息为例解释下,接下来的步骤。

- (void)didReceiveWeiboResponse:(WBBaseResponse *)response
{
    if ([response isKindOfClass:WBAuthorizeResponse.class])
    {
        if ((int)response.statusCode == 0) {
            [SVProgressHUD showWithStatus:NSLocalizedString(@"小阅正在登录中...", nil)];
            NSDictionary *resultDic =response.userInfo;
            //获取用户的微博头像需要的参数
            NSString *weiboToken =resultDic[@"access_token"];
            NSString *weiboUid = resultDic[@"uid"];
            //请求网络获取用户微博的信息
            NSString *urlString =[NSString stringWithFormat:@"https://api.weibo.com/2/users/show.json?access_token=%@&uid=%@",weiboToken,weiboUid];
            AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
            manager.responseSerializer = [AFHTTPResponseSerializer serializer];
            [manager GET:urlString parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {

            } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
               NSDictionary *resultDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
                [QFStoreUserDefaults setFromThirdPlat:@"weibo"];
                NSString *weibonickStr = resultDic[@"screen_name"];

                NSString *weiboIdStr = resultDic[@"id"];

                NSString *weiboPhotoStr = resultDic[@"profile_image_url"];

                return;

            } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
                 [SVProgressHUD showErrorWithStatus:NSLocalizedString(@"获取用户微博信息失败", nil)];
            }];
        }
    }
}

上面就是利用回调获取到用户的uid和accesstoken去请求另一个接口,即用户信息接口。这样才算获取到用户的信息,也真正达到了使用第三方的作用,看到网上也有很多同学其实也是被阻拦到了这里。

最后上一下这个接口返回的数据以及其他所有的接口地址微博其它信息接口

返回结果
JSON示例
{
    "id": 1404376560,
    "screen_name": "zaku",
    "name": "zaku",
    "province": "11",
    "city": "5",
    "location": "北京 朝阳区",
    "description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",
    "url": "http://blog.sina.com.cn/zaku",
    "profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",
    "domain": "zaku",
    "gender": "m",
    "followers_count": 1204,
    "friends_count": 447,
    "statuses_count": 2908,
    "favourites_count": 0,
    "created_at": "Fri Aug 28 00:00:00 +0800 2009",
    "following": false,
    "allow_all_act_msg": false,
    "geo_enabled": true,
    "verified": false,
    "status": {
        "created_at": "Tue May 24 18:04:53 +0800 2011",
        "id": 11142488790,
        "text": "我的相机到了。",
        "source": "<a href="http://weibo.com" rel="nofollow">新浪微博</a>",
        "favorited": false,
        "truncated": false,
        "in_reply_to_status_id": "",
        "in_reply_to_user_id": "",
        "in_reply_to_screen_name": "",
        "geo": null,
        "mid": "5610221544300749636",
        "annotations": [],
        "reposts_count": 5,
        "comments_count": 8
    },
    "allow_all_comment": true,
    "avatar_large": "http://tp1.sinaimg.cn/1404376560/180/0/1",
    "verified_reason": "",
    "follow_me": false,
    "online_status": 0,
    "bi_followers_count": 215
}

关于错误返回值与错误代码,参见 错误代码说明
返回字段说明
返回值字段   字段类型    字段说明
id  int64   用户UID
idstr   string  字符串型的用户UID
screen_name string  用户昵称
name    string  友好显示名称
province    int 用户所在省级ID
city    int 用户所在城市ID
location    string  用户所在地
description string  用户个人描述
url string  用户博客地址
profile_image_url   string  用户头像地址(中图),50×50像素
profile_url string  用户的微博统一URL地址
domain  string  用户的个性化域名
weihao  string  用户的微号
gender  string  性别,m:男、f:女、n:未知
followers_count int 粉丝数
friends_count   int 关注数
statuses_count  int 微博数
favourites_count    int 收藏数
created_at  string  用户创建(注册)时间
following   boolean 暂未支持
allow_all_act_msg   boolean 是否允许所有人给我发私信,true:是,false:否
geo_enabled boolean 是否允许标识用户的地理位置,true:是,false:否
verified    boolean 是否是微博认证用户,即加V用户,true:是,false:否
verified_type   int 暂未支持
remark  string  用户备注信息,只有在查询用户关系时才返回此字段
status  object  用户的最近一条微博信息字段 详细
allow_all_comment   boolean 是否允许所有人对我的微博进行评论,true:是,false:否
avatar_large    string  用户头像地址(大图),180×180像素
avatar_hd   string  用户头像地址(高清),高清头像原图
verified_reason string  认证原因
follow_me   boolean 该用户是否关注当前登录用户,true:是,false:否
online_status   int 用户的在线状态,0:不在线、1:在线
bi_followers_count  int 用户的互粉数
lang    string  用户当前的语言版本,zh-cn:简体中文,zh-tw:繁体中文,en:英语
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值