第三方SDK:ShareSDK 快捷分享 + 登陆

快速集成分享

目的:使用shareSDK实现快捷分享。

效果图:

这里写图片描述 这里写图片描述

步骤:

官方文档:
ShareSDK for Studio 快速集成

第一步:注册ShareSDK应用获取ShareSDK的appkey
第二步:下载ShareSDK
第三步:利用快速集成工具生成所需要的集成文件
第四步:将生成的文件集成到自己的项目
第五步:配置清单文件
第六步:申请配置第三方平台的key
第七步:初始化ShareSDK
第八步:调用onekeyshare的界面分享

各平台地址及申请流程官方文档

ShareSDK各社交平台申请APPkey 的网址及申请流程汇总

常用开放平台:微博+微信+QQ

微博开放平台
QQ开放平台
微信开放平台
QQ互联

常用开放平台申请流程:微博+微信+QQ

Android新浪微博开放平台申请流程
腾讯开放平台申请流程
微信开放平台申请流程

注:

[1] Email、信息不需要注册即可使用
[2] QQ客户端分享和QQ空间使用相同的应用信息配置页面
[3] 微信好友和微信朋友圈使用相同的注册信息
[4] 易信好友和易信朋友圈使用相同的注册信息

注意:

  • 初始化ShareSDK最好不要在Application中进行,哪里需要分享在哪里初始化,可以进行多次初始化。
  • 微博、QQ、QQ空间不需要审核也可以得到APP ID App Key App Secret,也就是可以分享成功;但是微信不可以,只有审核成功后,才会获得APP ID App Secret
  • 如果提示“分享失败”,在log中搜一下Throwable或者System.err,如果是Auth failed,多半是APP ID App Key App Secret填写错误,或者微博的回调错了(我没写回调分享也成功了)

报错

原因:

这里写图片描述

解决方法:

moduleandroid节点下添加一下代码
这里写图片描述

android {
    ...
    defaultConfig {
    ...
    }
    buildTypes {
    ...
    }
    lintOptions{
        checkReleaseBuilds false
        abortOnError false
    }
}

登陆

前面的配置和分享一样。
点击“QQ登陆”,实现qq登陆
点击“微博登陆”,失败,应该是没有审核通过,无法采用微博登陆,不确定原因。
微信登陆需要审核引用。

效果图

这里写图片描述

QQ登陆

QQ、微信、微博登陆代码都是一样的,

Platform qq = ShareSDK.getPlatform(QQ.NAME);
qq.SSOSetting(false);  //设置false表示使用SSO授权方式
qq.setPlatformActionListener(new PlatformActionListener() { // 设置分享事件回调
    @Override
    public void onComplete(Platform platform, int action, HashMap<String, Object> hashMap) {
        //输出所有授权信息
        platform.getDb().exportData();
        //遍历Map
        Iterator ite = hashMap.entrySet().iterator();
        while (ite.hasNext()) {
            Map.Entry entry = (Map.Entry) ite.next();
            Object key = entry.getKey();
            Object value = entry.getValue();
            Logger.d("QQ---" + key + ": " + value);
        }


        Logger.d("hashMap=" + hashMap);
        startActivity(new Intent(MainActivity.this, Activity_B.class));
    }

    @Override
    public void onError(Platform platform, int i, Throwable throwable) {
        Logger.d("onError--throwable=" + throwable.getMessage());
    }

    @Override
    public void onCancel(Platform platform, int i) {
        Logger.d("onCancel");
    }
});

qq.authorize();//单独授权
qq.showUser(null);//授权并获取用户信息

获取平台数据库的用户信息(此方法统一各个第三方平台获取数据信息的接口)

if (action == Platform.ACTION_USER_INFOR) {
    PlatformDb platDB = platform.getDb();//获取数平台数据DB
    //通过DB获取各种数据
    platDB.getToken();
    platDB.getUserGender();
    platDB.getUserIcon();
    platDB.getUserId();
    platDB.getUserName();
    Logger.d("name=" + platDB.getUserName() + "token=" + platDB.getToken() + "gender=" + platDB.getUserGender() + "userIcon=" + platDB.getUserIcon() + "UserId=" + platDB.getUserId());
}

注意

  • QQ登陆需要在QQ互联上面注册,测试的话:走完第一步(资料填写)就可以了;正式的话:应该走完全部的3步吧(没测试)。

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值