使用Umeng的第三方登录就非常简单了,和分享用的是一个框架,只需要在登录的时候调用一下方法就OK了
1.微信登录
在点击图标的时候调用这个方法(其中if括号里面的是用来判断是否安装了微信客户端,你也可以用这个来做图标的显示与否的判断)
if ([WXApi isWXAppInstalled]) {//
SendAuthReq* req = [[SendAuthReq alloc ] init ];
req.scope = @"snsapi_userinfo" ;
req.state = @"login" ;
//第三方向微信终端发送一个SendAuthReq消息结构
[WXApi sendReq:req];
}
微信的回调会调用这个方法- (void)onResp:(BaseResp*)resp
,主要用来判断是否授权登录
if ([resp isKindOfClass:[SendMessageToWXResp class]]) {
// 这里做分享的逻辑
}else if([resp isKindOfClass:[SendAuthResp class]]){
// 这里做登录的逻辑
}
这里有各种状态的状态码
WXSuccess = 0, /**< 成功 */
WXErrCodeCommon = -1, /**< 普通错误类型 */
WXErrCodeUserCancel = -2, /**< 用户点击取消并返回 */
WXErrCodeSentFail = -3, /**< 发送失败 */
WXErrCodeAuthDeny = -4, /**< 授权失败 */
WXErrCodeUnsupport = -5, /**< 微信不支持 */
授权成功会返回一个code码
调用这个接口(https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET)
获取access_token,注意其中的参数要换成你们公司申请时的参数.
这时你不仅获取到了access_token还有其他的一些参数比如openid等,因为做第三方登录你还需要获取用户的数据,
你就需要调用这个接口(https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN )
其中的参数就传之前获取回来的参数,这是还会返回很多数据,你选择你需要的数据发送给你的服务器就好了,比如nickname(用户的昵称)/openid(用户的标识,对当前公众号唯一)/headimgurl(用户头像)等等
这样的集成就好了!!
网友评论