第一次写,水平有限。基本算是抄着官网的,可以直接看官方文档
一.注册mob开发者账号,创建应用,获取AppKey与App Secret
二.开始集成 详情://http://wiki.mob.com/sdk-share-android-3-0-0/
1)打开根目录的build.gradle,配置
buildscript {
repositories {
jcenter()
}
dependencies {
...
classpath "com.mob.sdk:MobSDK:2018.0319.1724"
}
2)在应用使用了sharesdk的moudule的build.gradle中添加如下配置
MobSDK {
appKey "d580ad56b4b5"
appSecret "7fcae59a62342e7e2759e9e397c82bdd"
ShareSDK {
//平台配置信息
devInfo {//其中的devInfo为来自社交平台的应用信息。
Wechat {
appId "wx4868b35061f87885"
appSecret "64020361b8ec4c99936c0e3999a9f249"
}
QQ {
appId "111111"
appKey "111111"
shareByAppClient true
}
}
}
}
3)配置平台
三.a.初始化MobSDK,在Application中的oncreate中添加
MobSDK.init(this);
b.开始授权获取信息
Platform plat = ShareSDK.getPlatform(QQ.NAME);
plat.removeAccount(true); //移除授权状态和本地缓存,下次授权会重新授权
plat.SSOSetting(false); //SSO授权,传false默认是客户端授权,没有客户端授权或者不支持客户端授权会跳web授权
plat.setPlatformActionListener(new PlatformActionListener() {
@Override
public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
//在platform.getDb().exportData()或者hashMap找需要的信息
//String unionid =platform.getDb().get("unionid”);//微信获取unionid
String s = platform.getDb().exportData();//
Log.d(TAG, "qqlogin---onComplete: "+s);
Iterator ite = hashMap.entrySet().iterator();
while (ite.hasNext()) {
Map.Entry entry = (Map.Entry)ite.next();
Object key = entry.getKey();
Object value = entry.getValue();
System.out.println(key+": "+value);
}
}
@Override
public void onError(Platform platform, int i, Throwable throwable) {
throwable.printStackTrace();
}
@Override
public void onCancel(Platform platform, int i) {
}
});//授权回调监听,监听oncomplete,onerror,oncancel三种状态
if(plat.isClientValid()){
//判断是否存在授权凭条的客户端,true是有客户端,false是无
}
if(plat.isAuthValid()){
//判断是否已经存在授权状态,可以根据自己的登录逻辑设置
Toast.makeText(context, "已经授权过了", Toast.LENGTH_LONG).show();
return;
}
// plat.authorize(); //要功能,不要数据 调用此方法 res为空
plat.showUser(null); //要数据不要功能,主要体现在不会重复出现授权界面
4)微信登录
a.微信开放平台创建应用 并开通微信登录功能
b.获取AppId,与appSecret填写如平台配置信息
c.包名和应用签名对应,debug与release的签名不一样,签名不一致无法调起微信
d.配置Manifest文件,配置sharesdk和配置微信回调(qq好像不用了 估计是sharesdk弄好了,以前貌似也有配置)
<activity
android:name="com.mob.tools.MobUIShell"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="stateHidden|adjustResize">
<!--微信分享回调 -->
<activity android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />
5)QQ登录
a.腾讯开发平台创建应用
b.获取Appid和appkey
c.若不同应用信息要互通,openid是不一样的。需要打通UNIONID (打通地址 )
d.获取unionid 的接口地址
(https://graph.qq.com/oauth2.0/me?access_token=DGKFDJGJDF8346GFNF34BDF8DDF4&unionid=1)