android实现第三方登录

现在的很多app都会支持第三方登录,所以就在这里记录一下自己使用过的方法。
一、友盟
具体步骤参照官方文档即可。我要说的是,具体在代码中怎么使用,可以参考官方提供的as项目:social_sdk_example_as。这里面有登录的具体实现。

二、使用非集成化的方法

也就是使用各个平台自己的api来实现登录。比如说想使用QQ的登录,就可以在代码中这样使用:

mTencent.login(this, "all", mTencentUIListener);

其中,mTencentUIListener是回调接口:

private IUiListener mTencentUIListener = new IUiListener() {
        @Override
        public void onComplete(Object o) {
            if (o != null && o instanceof JSONObject) {
                JSONObject json = (JSONObject) o;
                mTencent.setOpenId(json.optString("openid"));
                mTencent.setAccessToken(json.optString("access_token"), json.optString("expires_in"));
                UserInfo userInfo = new UserInfo(RegisterActivity.this, mTencent.getQQToken());
                userInfo.getUserInfo(new IUiListener() {
                    @Override
                    public void onComplete(Object o) {
                        if (o != null && o instanceof JSONObject) {
                            JSONObject infoJson = (JSONObject) o;
                            String result = infoJson.optString("ret");
                            String nickName = infoJson.optString("nickname");
                            String avatarUrl = infoJson.optString("figureurl_qq_2");
                            if (!TextUtils.isEmpty(result) && TextUtils.equals(result, "0")) {
                                HixgoClient.getInstance().loginThirdParty(mTencent.getOpenId(), nickName, avatarUrl, 2, new NetworkSubscriber<BaseMessageEntity>(RegisterActivity.this) {
                                    @Override
                                    public void onNext(BaseMessageEntity data) {
                                        super.onNext(data);
                                        if (data.isOKCode()) {
                                            BusinessManager.getInstance().login();
                                            Toast.makeText(RegisterActivity.this, "" + data.msg, Toast.LENGTH_SHORT).show();
                                            finish();
                                        }
                                    }
                                });
                            } else {

                            }
                        }
                    }

                    @Override
                    public void onError(UiError uiError) {

                    }

                    @Override
                    public void onCancel() {

                    }
                });
            }
        }

        @Override
        public void onError(UiError uiError) {
        }

        @Override
        public void onCancel() {
        }
    };

类似的,可以使用平台提供的api去实现微信,新浪微博的登录。

总结:

我用过的就是上面的两种方法,反正就是怎么简单怎么来,可能以后会去尝试其他的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值