安卓第三方登录集成

来源:互联网 发布:网络招标 编辑:程序博客网 时间:2024/04/29 18:13

转帖请注明本文出自weimeig的博客(http://blog.csdn.net/weimeig/article/details/78818085),请尊重他人的辛勤劳动成果,谢谢


ShareSDK集成

一、集成

二、第三方开发平台注册

三、项目中使用


一、集成

到mob.com下载ShareSDK,选择要集成的功能并下载,下载好后,解压,并点击QuickIntegrater.rar生成需要功能,得到Sample文件夹,生成时候记得填写项目包名才点击生成,不然会报错。

(1)将Sample文件夹的libs文件夹里的jar包复制到项目下的app文件夹下的libs文件夹内。

(2)res文件夹内的文件,不做任何改名更改,复制到项目下的app文件夹下的res文件夹内。

(3)将ShareSDK.xml文件复制到项目下的app文件夹下的src下的main文件夹下的assets文件夹中,如果没有这个文件夹则创建一个。

(4)将src文件夹内复制到项目下的app文件夹下的src下的main文件夹下的java文件夹中,与自己原包名项目并列。

(5)更改AndroidManifest.xml文件内应用权限,照着官方文档填写即可,或者下载本文提供的demo,从demo中复制AndroidManifest.xml文件内权限到自己的项目

 ( 6 )AndroidManifest.xml文件内设置您从Mob开发者后台中得到的Appkey和AppSecret,如


此时如果有地方报红,点击AndroidStudio上方工具栏里的BuiId下的Clean Project ,结束后点击RebuiId Project,然后再点击一下这个按钮,


原因是新引入的包需要同步一下,就不报红了。

集成完成。

二、第三方开发平台注册

如需要集成第三方登录是QQ、微信、微博。则分别到对应的第三方开放平台注册账号,如微信是微信第三方开放平台,在平台选择开启登录功能,然后填写完应用相关信息后,得到AppId和AppSecret将两者保存下来,一会第三步要用到。这里需要注意的是,平台填写的应用信息中,包名和应用签名,要和app对应。最后面附上怎么查看应用签名的方法。

特别注明:新浪微博的话,还需要在开放平台里选择回调接口地址,在开放平台应用信息附近找到OAuth2.0 授权设置编辑,设置微博回调地址。

比如官方默认的回调地址(默认的也可以使用):

授权回调页:http://sns.whalecloud.com/sina2/callback
取消授权回调页:http://sns.whalecloud.com/sina2/callback

三、项目中使用

(1)将你在第三方开发平台申请到的AppId和AppSecret填写到src下的main文件夹下的assets文件夹内的ShareSDK.xml文件中,替换掉mob提供的初始的。微博的话,还需要在这个文件里面的微博的配置里,设置RedirectUrl这个参数,微博官方默认的是

RedirectUrl="http://sns.whalecloud.com/sina2/callback"
如果你申请开发平台时用了默认的,可以设置为这个

(2)第三方登录的方法

/**     * 第三方登录方法     * Created by weimei on 2017/12/16.     * Email:ucvs@qq.com     */    private void thirdLogin(String platformName,final String backType) {        Platform wechat = ShareSDK.getPlatform(platformName);        wechat.SSOSetting(false);  //设置false表示使用SSO授权方式        if(wechat.isAuthValid()){            wechat.removeAccount(true);        }        wechat.setPlatformActionListener(new PlatformActionListener() {            @Override            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {                Log.d(TAG, "onComplete: "+i+new Gson().toJson(hashMap));                if (i == Platform.ACTION_USER_INFOR) {                    final PlatformDb platDB = platform.getDb();//获取数平台数据DB                    //通过DB获取各种数据                    platDB.getToken();                    platDB.getUserGender();                    platDB.getUserIcon();                    platDB.getUserId();                    platDB.getUserName();                    Log.d(TAG, "onComplete: "+ platDB.getToken()+"-"+ platDB.getUserId()+"-"+ platDB.getUserName());                    runOnUiThread(new Runnable() {                        @Override                        public void run() {                            // platDB.getUserId()是唯一的                           //这里写你的业务逻辑,如网络请求// mPresenter.trilateralLogin(backType,platDB.getUserId(),platDB.getUserName(),//                          platDB.getUserIcon(),platDB.getUserGender(),LoginActivity.this);                        }                    });                }            }            @Override            public void onError(Platform platform, int i, Throwable throwable) {                Log.d(TAG, "onError: "+throwable.toString());            }            @Override            public void onCancel(Platform platform, int i) {                /**                 * 给用户取消的提示                 */            }        }); // 设置分享事件回调        wechat.authorize();//单独授权        wechat.showUser(null);    }

然后在需要使用第三方登录的地方调用该方法即可

如果此时报红,则用第一步教的那个方法,同步一下,就不报红了。

此时

QQ调用时,如:

thirdLogin(QQ.NAME,"AndroidQQ");

微信调用时,如:

thirdLogin(Wechat.NAME,"AndroidWechat");
微博调用时,如:

thirdLogin(SinaWeibo.NAME,"Androidweibo");
其中第一个参数的,如:QQ.NAME,是第三方规定的,不可随意更改,第二个参数,是来源,如果你后台的url不需要这个参数,直接删除即可,同时也在thirdLogin方法里面删除即可。



附:查看应用签名的方法。

用密钥打包apk,打包的时候,选择生成release版本,切记不要生成debug版本。

然后安装到手机中。

同时安装下面提供的这个apk。打开这个apk,输入你的应用包名,点击生成,生成的这个就是你的安卓签名。


注意这个是要用你发布app的那个密钥去生成apk,并且输入的包名和你发布的app的包名一致,满足这两个要求前提下,才能生成一致的安卓签名。

安卓签名生成软件

http://download.csdn.net/download/weimeig/10161075

项目Demo下载

http://download.csdn.net/download/weimeig/10161093



原创粉丝点击