MOB进行第三方登录

项目中免不了要使用到第三方登录  使用QQ 和微信的 数据信息来登录  那么今天来记录下 MOB的使用方法

      直接上代码:

第一步:

dependencies {
    classpath 'com.android.tools.build:gradle:3.6.1'
    // 注册MobSDK
    classpath 'com.mob.sdk:MobSDK:+'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

第二步:   在项目的build.gradle 中 添加一下代码

 

apply plugin: 'com.android.application'
apply plugin: 'com.mob.sdk'
MobSDK {
    appKey "XXXXXX"
    appSecret "XXXXXXXXX"
    permissions {//不需要的权限可以在这里移除
        exclude "android.permission.RECEIVE_SMS", "android.permission.READ_SMS", "android.permission.READ_CONTACTS", "android.permission.BLUETOOTH"
    }
    SMSSDK {}//没用到短信验证码,可以去掉
    ShareSDK {
        devInfo {

            Wechat {//微信
                appId "XXXXX"
                appSecret "XXXXXXXXX"
            }
            QQ {//QQ
                appId "XXXXXX"
                appKey "XXXXXX"
            }

        }
    }
}

和下面的 android {} 同层

第三部:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        MobSDK.init(this);
    }
}

记得要在清单文件里添加

android:name=".MyApp"

第四部: 

/*
 * 第三方登录QQ
 * */
public void getQQ(){

    Platform plat = ShareSDK.getPlatform(QQ.NAME);
    plat.removeAccount(true); //移除授权状态和本地缓存,下次授权会重新授权
    plat.SSOSetting(false); //SSO授权,传false默认是客户端授权,没有客户端授权或者不支持客户端授权会跳web授权
    plat.setPlatformActionListener(new PlatformActionListener() {//授权回调监听,监听oncomplete,onerror,oncancel三种状态
        @Override
        public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {

            mTv.setText("登陆成功");
            if(i == Platform.ACTION_AUTHORIZING)//要功能不要数据
            {
                //直接跳转到登陆成功的界面
                Log.e("info","登陆成功");
            }
            else if(i == Platform.ACTION_USER_INFOR)//要数据不要功能
            {
                for (Map.Entry<String, Object> entry : hashMap.entrySet()) {
                    Log.e("info","key:"+entry.getKey()+"\tvalue:"+entry.getValue());
                }
            }


        }

        @Override
        public void onError(Platform platform, int i, Throwable throwable) {
            Log.e("info","登陆失败");
        }

        @Override
        public void onCancel(Platform platform, int i) {
            Log.e("info","取消登陆");
        }
    });
    if (plat.isClientValid()) {
        //todo 判断是否存在授权凭条的客户端,true是有客户端,false是无
    }
    if (plat.isAuthValid()) {
        //todo 判断是否已经存在授权状态,可以根据自己的登录逻辑设置
        Toast.makeText(this, "已经授权过了", Toast.LENGTH_SHORT).show();
        return;
    }
    //plat.authorize();    //要功能,不要数据
    plat.showUser(null);    //要数据不要功能,主要体现在不会重复出现授权界面
}

-------------------------------------------------------

/*
 * 第三方微信登录
 * */
public void getWeiXin(){

    Platform plat = ShareSDK.getPlatform(Wechat.NAME);
    plat.removeAccount(true); //移除授权状态和本地缓存,下次授权会重新授权
    plat.SSOSetting(false); //SSO授权,传false默认是客户端授权,没有客户端授权或者不支持客户端授权会跳web授权
    plat.setPlatformActionListener(new PlatformActionListener() {//授权回调监听,监听oncomplete,onerror,oncancel三种状态
        @Override
        public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
            if(i == Platform.ACTION_AUTHORIZING)//要功能不要数据
            {
                //直接跳转到登陆成功的界面
                Log.e("info","登陆成功");
            }
            else if(i == Platform.ACTION_USER_INFOR)//要数据不要功能
            {
                for (Map.Entry<String, Object> entry : hashMap.entrySet()) {
                    Log.e("info","key:"+entry.getKey()+"\tvalue:"+entry.getValue());
                }
            }
        }

        @Override
        public void onError(Platform platform, int i, Throwable throwable) {
            Log.e("info","登陆失败");            }

        @Override
        public void onCancel(Platform platform, int i) {
            Log.e("info","登陆失败");            }
    });
    if (plat.isClientValid()) {
        //todo 判断是否存在授权凭条的客户端,true是有客户端,false是无
    }
    if (plat.isAuthValid()) {
        //todo 判断是否已经存在授权状态,可以根据自己的登录逻辑设置
        Toast.makeText(this, "已经授权过了", Toast.LENGTH_SHORT).show();
        return;
    }
    //plat.authorize();    //要功能,不要数据
    plat.showUser(null);    //要数据不要功能,主要体现在不会重复出现授权界面
}

好了  完事了  快去  CV 吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jonly_W

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值