美文网首页ios开发的那些坑
iOS-微博登录回调不成功的解决

iOS-微博登录回调不成功的解决

作者: fly大梦想家 | 来源:发表于2018-08-28 15:53 被阅读8次

    之前微博登录正常实现,后来回调到客户端就是客户端不执行下一步操作
    原因 : 不知道哪一天给粘贴上了不知道在哪个地方复制的代理方法
    解决 : 删掉就好了
    要删的!!!!!

    -(void)request:(WBHttpRequest *)request didReceiveResponse:(NSURLResponse *)response{
        
    }
    /**
     收到一个来自微博Http请求的网络返回
     
     @param data 请求返回结果
     */
    
    - (void)request:(WBHttpRequest *)request didFinishLoadingWithDataResult:(NSData *)data{
        
    }
    
    /**
     收到快速SSO授权的重定向
     
     @param URI
     */
    
    - (void)request:(WBHttpRequest *)request didReciveRedirectResponseWithURI:(NSURL *)redirectUrl{
        
    }
    

    [!!!!不要删的] 下面的是我之前的,有一些自己封装的东西懒得删了,直接跳过看吧

    #pragma mark - sina
    - (void)didReceiveWeiboRequest:(WBBaseRequest *)request{
        
    }
    - (void)didReceiveWeiboResponse:(WBBaseResponse *)response{
        self.sinaResponse = [[SSSocialUserInfoResponse alloc] init];
        self.sinaResponse.platformType = SSSocialPlatformTypeSina;
        if ( [response isKindOfClass:[WBAuthorizeResponse class]] && self.isShared == NO) {
            if (response.statusCode == WeiboSDKResponseStatusCodeSuccess ) {
                NSString *token = [(WBAuthorizeResponse *)response accessToken];
                NSString *userid = [(WBAuthorizeResponse *)response userID];
                
                self.sinaResponse.statusCode = SSSocialResponseStatusCodeSuccess;
                self.sinaResponse.openid = userid;
                self.sinaResponse.accessToken = token;
                
                NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:2];
                [params setObject:token forKey:@"access_token"];
                [params setObject:userid forKey:@"uid"];
                
                //发送请求 获取各种数据 对应的URL和请求方式heepMethod是不同的 详细的参考微博开放平台
                [WBHttpRequest requestWithURL:@"https://api.weibo.com/2/users/show.json" httpMethod:@"GET" params:params delegate:self withTag:@"getUserInfo"];
            }else if (response.statusCode == WeiboSDKResponseStatusCodeUserCancel){
                self.sinaResponse.statusCode = SSSocialResponseStatusCodeUserCancel;
                self.sinaResponse.error = @"取消操作";
                _userInfoBlock(self.sinaResponse);
                if (self.callbackResponse != nil) {
                    self.callbackResponse(@"cancel", nil);
                }
            }else{
                self.sinaResponse.statusCode = SSSocialResponseStatusCodeAuthDeny;
                self.sinaResponse.error = @"授权失败";
                _userInfoBlock(self.sinaResponse);
                if (self.callbackResponse != nil) {
                    self.callbackResponse(@"failed", nil);
                }
            }
        }else{
            self.isShared = NO;
        }
        if (response.statusCode == WeiboSDKResponseStatusCodeSuccess) {
            if (self.callbackResponse != nil) {
                self.callbackResponse(@"success", nil);
            }
        }
    }
    #pragma mark - WBHttpRequestDelegate
    /**
     收到一个来自微博Http请求的网络返回
     
     @param result 请求返回结果
     */
    -(void)request:(WBHttpRequest *)request didFinishLoadingWithResult:(NSString *)result {
        
        NSData *data = [result dataUsingEncoding:NSUTF8StringEncoding];
        NSDictionary *dic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        if (dic == nil) {
            self.sinaResponse.statusCode = SSSocialResponseStatusCodeAuthDeny;
            self.sinaResponse.error = @"授权失败";
            _userInfoBlock(self.sinaResponse);
            return;
        }
        self.sinaResponse.statusCode = 0;
        self.sinaResponse.nickname = [dic objectForKey:@"screen_name"];
        self.sinaResponse.iconurl = [dic objectForKey:@"profile_image_url"];
        _userInfoBlock(self.sinaResponse);
    }
    /**
     收到一个来自微博Http请求失败的响应
     
     @param error 错误信息
     */
    - (void)request:(WBHttpRequest *)request didFailWithError:(NSError *)error{
        self.sinaResponse.statusCode = SSSocialResponseStatusCodeAuthDeny;
        self.sinaResponse.error = @"授权失败";
        _userInfoBlock(self.sinaResponse);
    }
    

    相关文章

      网友评论

        本文标题:iOS-微博登录回调不成功的解决

        本文链接:https://www.haomeiwen.com/subject/ogcqwftx.html