全球中文玩家俱乐部 Chinese players club of the Global .

侠外游戏论坛

 找回密码
 立即注册
快捷导航
搜索
视听
视听
图片
图片
段子
段子
小说
小说
查看: 670|回复: 0
打印 上一主题 下一主题
收起左侧

[闲聊页游] [微信qq登录]第三方登录(微信、QQ)

[复制链接]

3047

主题

6643

帖子

3万

积分

ミ侠外护法ミ

Rank: 7Rank: 7Rank: 7

  • 威望
    0 点
    银子
    19487 两
    武功
    13622 阶
    元宝
    0 锭
    精华
    0
  • 跳转到指定楼层
    俺是撸主
    发表于 2021-7-14 01:10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    马上注册,结交更多侠客,享用更多功能,让你轻松玩转侠外论坛。

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x


    重写AppDelegate的handleOpenURL和openURL方法
    iOS 9 之前用
    -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    return [WXApi handleOpenURL:url delegate:self];
    }
    -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    return [WXApi handleOpenURL:url delegate:self];



    }
    iOS 9之后
    6.点击微信按钮处,编写代码
    if([WXApi isWXAppInstalled]){//判断用户是否已安装微信App
       
        SendAuthReq *req = [[SendAuthReq alloc] init];
        req.state = @"wx_oauth_authorization_state";//用于保持请求和回调的状态,授权请求或原样带回
        req.scope = @"snsapi_userinfo";//授权作用域:获取用户个人信息
        //唤起微信
        [WXApi sendReq:req];
    }else{
        [self showAlertControllerWithTitle:@"温馨提示" withMessage:@"未安装微信应用或版本过低"];
         }
    }
    用户点击授权后,微信客户端会被拉起,跳转至授权界面微信qq登录,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回数据给调用方
    我在AppDelegate中写微信回调代理 获取OpenId



    //微信回调代理
        SendAuthResp *aresp = (SendAuthResp *)resp;
        if (aresp.errCode != 0 ) {
            dispatch_async(dispatch_get_main_queue(), ^{
                [self showError:@"微信授权失败"];
            });
            return;
        }
        //授权成功获取 OpenId
        NSString *code = aresp.code;
        [self getWeiXinOpenId:code];
    }
    // =============== 获得的微信支付回调 ============
    if([resp isKindOfClass:[PayResp class]]){
        //支付返回结果,实际支付结果需要去微信服务器端查询
    }
    }
    通过code获取access_token,openid,unionid
    //通过code获取access_token,openid微信qq登录,unionid
    /*
    appid    是    应用唯一标识,在微信开放平台提交应用审核通过后获得
    secret    是    应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
    code    是    填写第一步获取的code参数
    grant_type    是    填authorization_code
    */
    9.-(void)getUserInfoWithAccessToken:(NSString *)access_token WithOpenid:(NSString *)openid



    {
    NSString *url =[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/userinfo?access_token=%@&openid=%@",access_token,openid];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSURL *zoneUrl = [NSURL URLWithString:url];
        NSString *zoneStr = [NSString stringWithContentsOfURL:zoneUrl encoding:NSUTF8StringEncoding error:nil];
        NSData *data = [zoneStr dataUsingEncoding:NSUTF8StringEncoding];
        dispatch_async(dispatch_get_main_queue(), ^{
            
            // 获取用户信息失败
            if (!data) {
                [self showError:@"微信授权失败"];
                return ;
            }
            
            // 获取用户信息字典
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
            //用户信息中没有access_token 我将其添加在字典中
            [dic setValue:access_token forKey:@"token"];
            NSLog(@"用户信息字典:===%@",dic);
            //保存改用户信息(我用单例保存)
            [GLUserManager shareManager].weiXinIfon = dic;
          //微信返回信息后,会跳到登录页面,添加通知进行其他逻辑操作
            [[NSNotificationCenter defaultCenter] postNotificationName:@"weiChatOK" object:nil];
            
        });
       
    });
    }
    二、QQ登录
    前期工作同上 直接上代码
    在点击登录页面



    实现代理
    实现代理回调
    if (self.tencentOAuth.accessToken){
       
        NSLog(@"%@ == %@",self.tencentOAuth.accessToken,self.tencentOAuth.openId);
       
        [self.tencentOAuth getUserInfo];
       
    }else{
        NSLog(@"登录失败!没有获取到accessToken");
    }}
    /** * 登录失败后的回调 */
    /** * 登录时网络有问题的回调 */
    /** * 取得用户信息的回调 */

    以上内容就是[微信qq登录]第三方登录(微信、QQ)的相关内容介绍,喜欢侠外游戏论坛的朋友可以关注我们。
    这里是你的个性签名位置,可在“设置”-“个人信息”-“个人签名”处修改。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    发布主题 上个主题 下个主题 快速回复 收藏帖子 返回列表 搜索

    联系我们|Archiver|手机版|小黑屋|侠外网 ( 豫ICP备13018943号-1 )

    GMT+8, 2024-10-7 22:28 , Processed in 0.040721 second(s), 18 queries , Gzip On, Memcache On.

    Copyright © 2001-2023 侠外游戏论坛 Powered by !Zucsud X3.5

    Support By A mysterious team , A great team ! Email:

    快速回复 返回顶部 返回列表