Commit 71ed77b0 by zhengnw@sobot.com

common 1.6.8 登录方式调整

parent 626141c5
...@@ -219,7 +219,7 @@ public class MainActivity extends SobotBaseActivity { ...@@ -219,7 +219,7 @@ public class MainActivity extends SobotBaseActivity {
map1.put("from", 2 + ""); map1.put("from", 2 + "");
map1.put("way", "10"); map1.put("way", "10");
map1.put("ack", "1"); map1.put("ack", "1");
map1.put("version", "3.3.1");
// SobotLoginTools.getInstance().doLogin(MainActivity.this, getSobotBaseContext(), true, "https://test-branche1.sobot.com/text", "https://test-branche1.sobot.com/text", "zhengnw@zhichi.com", "znw123456", map1, new SobotResultBlock() { // SobotLoginTools.getInstance().doLogin(MainActivity.this, getSobotBaseContext(), true, "https://test-branche1.sobot.com/text", "https://test-branche1.sobot.com/text", "zhengnw@zhichi.com", "znw123456", map1, new SobotResultBlock() {
// @Override // @Override
// public void resultBolok(SobotResultCode code, String msg, Object obj) { // public void resultBolok(SobotResultCode code, String msg, Object obj) {
...@@ -227,7 +227,7 @@ public class MainActivity extends SobotBaseActivity { ...@@ -227,7 +227,7 @@ public class MainActivity extends SobotBaseActivity {
// SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken() + ""); // SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken() + "");
// SobotLogUtils.i(SobotLoginTools.getInstance().getTempId()); // SobotLogUtils.i(SobotLoginTools.getInstance().getTempId());
// SobotLogUtils.i(SobotLoginTools.getInstance().getToken() + ""); // SobotLogUtils.i(SobotLoginTools.getInstance().getToken() + "");
//// SobotLoginTools.getInstance().logOut(MainActivity.this, "https://api-c.sobot.com/text", "zhengnw@zhichi.com", new SobotResultBlock() { //// SobotLoginTools.getInstance().logOut(MainActivity.this, "https://test-branche1.sobot.com/text", "zhengnw@zhichi.com", new SobotResultBlock() {
//// @Override //// @Override
//// public void resultBolok(SobotResultCode code, String msg, Object obj) { //// public void resultBolok(SobotResultCode code, String msg, Object obj) {
//// ////
...@@ -236,15 +236,15 @@ public class MainActivity extends SobotBaseActivity { ...@@ -236,15 +236,15 @@ public class MainActivity extends SobotBaseActivity {
// } // }
// }); // });
SobotLoginTools.getInstance().loginWithAppkey(MainActivity.this, getSobotBaseContext(), true, "https://test-branche1.sobot.com/text", "https://test.sobot.com", "zhengnw@zhichi.com", "UaH4q8JHj708", "615abf5432134e4992d4da2ba6f460db", map1, new SobotResultBlock() { // SobotLoginTools.getInstance().loginWithAppkey(MainActivity.this, getSobotBaseContext(), true, "https://test-branche1.sobot.com/text", "https://test-branche1.sobot.com", "zhengnw@zhichi.com", "UaH4q8JHj708", "615abf5432134e4992d4da2ba6f460db", map1, new SobotResultBlock() {
@Override // @Override
public void resultBolok(SobotResultCode code, String msg, Object obj) { // public void resultBolok(SobotResultCode code, String msg, Object obj) {
SobotLoginTools.getInstance().checkExpiresToken(); // SobotLoginTools.getInstance().checkExpiresToken();
SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken() + ""); // SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken() + "");
SobotLogUtils.i(SobotLoginTools.getInstance().getTempId()); // SobotLogUtils.i(SobotLoginTools.getInstance().getTempId());
SobotLogUtils.i(SobotLoginTools.getInstance().getToken() + ""); // SobotLogUtils.i(SobotLoginTools.getInstance().getToken() + "");
} // }
}); // });
// LoginUserEntity sa=new LoginUserEntity(); // LoginUserEntity sa=new LoginUserEntity();
......
...@@ -11,7 +11,7 @@ android { ...@@ -11,7 +11,7 @@ android {
//这里就是打jar包 //这里就是打jar包
task makeJar(type: Copy) { task makeJar(type: Copy) {
//删除旧的jar包 //删除旧的jar包
delete 'build/libs/sobot_common_x_1.6.6.jar' delete 'build/libs/sobot_common_x_1.6.8.jar'
//原地址 //原地址
from('build/intermediates/packaged-classes/release/') from('build/intermediates/packaged-classes/release/')
//导出jar包的地址 //导出jar包的地址
...@@ -19,7 +19,7 @@ android { ...@@ -19,7 +19,7 @@ android {
//包含的jar包 //包含的jar包
include('classes.jar') include('classes.jar')
//重命名jar包为mysdk //重命名jar包为mysdk
rename ('classes.jar', 'sobot_common_x_1.6.6.jar') rename ('classes.jar', 'sobot_common_x_1.6.8.jar')
} }
makeJar.dependsOn(build) makeJar.dependsOn(build)
} }
......
...@@ -12,12 +12,10 @@ task androidSourcesJar(type: Jar) { ...@@ -12,12 +12,10 @@ task androidSourcesJar(type: Jar) {
ext { ext {
PUBLISH_GROUP_ID = "com.sobot.library" //项目包名 PUBLISH_GROUP_ID = "com.sobot.library" //项目包名
PUBLISH_ARTIFACT_ID = 'sobotcommon_x' //项目名 PUBLISH_ARTIFACT_ID = 'sobotcommon_x' //项目名
PUBLISH_VERSION = '1.6.6' //版本号 PUBLISH_VERSION = '1.6.8' //版本号
} }
ext["signing.keyId"] = '' ext["signing.keyId"] = ''
ext["signing.password"] = '' ext["signing.password"] = ''
ext["signing.secretKeyRingFile"] = '' ext["signing.secretKeyRingFile"] = ''
......
...@@ -211,7 +211,7 @@ public class SobotLoginTools { ...@@ -211,7 +211,7 @@ public class SobotLoginTools {
*/ */
public void doLogin(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, final String loginPwd, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) { public void doLogin(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, final String loginPwd, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) {
if (SobotStringUtils.isEmpty(host) || SobotStringUtils.isEmpty(openApiHost)) { if (SobotStringUtils.isEmpty(host) || SobotStringUtils.isEmpty(openApiHost)) {
SobotLogUtils.i("域名不能为空"); SobotLogUtils.i("host 或者 openApiHost域名不能为空");
if (resultBlock != null) { if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "域名不能为空", getServiceInfo()); resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "域名不能为空", getServiceInfo());
} }
...@@ -225,7 +225,7 @@ public class SobotLoginTools { ...@@ -225,7 +225,7 @@ public class SobotLoginTools {
return; return;
} }
final Map<String, Object> params = new HashMap<>(); final Map<String, Object> params = new HashMap<>();
params.put("userEntity", loginAcount); params.put("loginUser", loginAcount);
params.put("loginPwd", loginPwd); params.put("loginPwd", loginPwd);
SobotHttpUtils.doPost(cancelTag, host + "/basic-login/serviceAppLogin/4", 8000, params, null, new HttpBaseUtils.StringCallBack() { SobotHttpUtils.doPost(cancelTag, host + "/basic-login/serviceAppLogin/4", 8000, params, null, new HttpBaseUtils.StringCallBack() {
@Override @Override
...@@ -342,9 +342,9 @@ public class SobotLoginTools { ...@@ -342,9 +342,9 @@ public class SobotLoginTools {
* @param paramsMap 单独执行在线登录逻辑 参数 * @param paramsMap 单独执行在线登录逻辑 参数
* @param resultBlock * @param resultBlock
*/ */
public void loginWithAppkey(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, final String appkey, final String appId, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) { public void loginWithAppkey(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, String appkey, String appId, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) {
if (SobotStringUtils.isEmpty(host) || SobotStringUtils.isEmpty(openApiHost)) { if (SobotStringUtils.isEmpty(host) || SobotStringUtils.isEmpty(openApiHost)) {
SobotLogUtils.i("域名不能为空"); SobotLogUtils.i("host 或者 openApiHost域名不能为空");
if (resultBlock != null) { if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "域名不能为空", getServiceInfo()); resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "域名不能为空", getServiceInfo());
} }
...@@ -374,13 +374,13 @@ public class SobotLoginTools { ...@@ -374,13 +374,13 @@ public class SobotLoginTools {
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("agent_email", loginAcount); params.put("agent_email", loginAcount);
//获取 个人座席token //获取 个人座席token
SobotHttpUtils.doPost(cancelTag, openApiHost.replace("/text", "") + "/api/public/sso/5/login", 8000, params, headerMap, new HttpBaseUtils.StringCallBack() { SobotHttpUtils.doPostByJsonString(cancelTag, openApiHost.replace("/text", "") + "/api/public/sso/5/login", params, headerMap, new HttpBaseUtils.StringCallBack() {
@Override @Override
public void onResponse(String response) { public void onResponse(String response) {
TokenModel result = SobotGsonUtil.jsonToBean(response, TokenModel.class); SobotCallBaseCode result = SobotGsonUtil.jsonToBean(response, SobotCallBaseCode.class);
if (result != null && !SobotStringUtils.isEmpty(result.getRet_code()) && "000000".equals(result.getRet_code()) && result.getItem() != null && SobotStringUtils.isNoEmpty(result.getItem().getToken())) { if (result != null && !SobotStringUtils.isEmpty(result.getRetCode()) && "000000".equals(result.getRetCode()) && !SobotStringUtils.isEmpty(result.getItem())) {
final long login_time = System.currentTimeMillis(); final long login_time = System.currentTimeMillis();
final String token = result.getItem().getToken(); final String token = (String) result.getItem();
getuserEntityInfo(cancelTag, mContext, host, token, "", new SobotResultBlock() { getuserEntityInfo(cancelTag, mContext, host, token, "", new SobotResultBlock() {
@Override @Override
public void resultBolok(SobotResultCode code, String msg, Object obj) { public void resultBolok(SobotResultCode code, String msg, Object obj) {
...@@ -454,7 +454,7 @@ public class SobotLoginTools { ...@@ -454,7 +454,7 @@ public class SobotLoginTools {
}); });
} else { } else {
if (resultBlock != null) { if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, (result != null && SobotStringUtils.isNoEmpty(result.getRet_msg())) ? result.getRet_msg() : "登录失败", ""); resultBlock.resultBolok(SobotResultCode.CODE_FAILED, (result != null && SobotStringUtils.isNoEmpty(result.getRetMsg())) ? result.getRetMsg() : "登录失败", "");
} }
} }
} }
...@@ -492,6 +492,140 @@ public class SobotLoginTools { ...@@ -492,6 +492,140 @@ public class SobotLoginTools {
}); });
} }
/**
* 执行登录操作
* 1、通过账号密码登录获取token;2、根据token获取客服角色权限等信息;3、如果是呼叫V6或者电销,先获取AccessToken;4、再根据客服app或者客服SDK登录同时又买了在线产品判断是否执行在线操作逻辑
*
* @param cancelTag
* @param mContext
* @param isAppOrOnlineLogin true 客服app或者客服SDK登录,如果有在线产品,再单独执行在线登录逻辑
* @param host
* @param openApiHost
* @param loginAcount 登录账号
* @param token 公司token(参考文档:https://developer.zhichi.com/pages/4e87dc/)
* @param paramsMap 单独执行在线登录逻辑 参数
* @param resultBlock
*/
public void loginWithCompanyToken(final Object cancelTag, final Context mContext, final boolean isAppOrOnlineLogin, final String host, final String openApiHost, final String loginAcount, String token, final Map<String, Object> paramsMap, final SobotResultBlock resultBlock) {
if (SobotStringUtils.isEmpty(host) || SobotStringUtils.isEmpty(openApiHost)) {
SobotLogUtils.i("host 或者 openApiHost域名不能为空");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "域名不能为空", getServiceInfo());
}
return;
}
if (isLogin(loginAcount)) {
SobotLogUtils.i("已经登录成功,不用重新登录");
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "已经登录成功", getServiceInfo());
}
return;
}
Map<String, String> headerMap = new HashMap<>();
headerMap.put("token", token);
Map<String, Object> params = new HashMap<>();
params.put("agent_email", loginAcount);
//获取 个人座席token
SobotHttpUtils.doPostByJsonString(cancelTag, openApiHost.replace("/text", "") + "/api/public/sso/5/login", params, headerMap, new HttpBaseUtils.StringCallBack() {
@Override
public void onResponse(String response) {
SobotCallBaseCode result = SobotGsonUtil.jsonToBean(response, SobotCallBaseCode.class);
if (result != null && !SobotStringUtils.isEmpty(result.getRetCode()) && "000000".equals(result.getRetCode()) && !SobotStringUtils.isEmpty(result.getItem())) {
final long login_time = System.currentTimeMillis();
final String token = (String) result.getItem();
getuserEntityInfo(cancelTag, mContext, host, token, "", new SobotResultBlock() {
@Override
public void resultBolok(SobotResultCode code, String msg, Object obj) {
if (code == SobotResultCode.CODE_SUCCEEDED) {
SobotServiceInfoModel serviceInfoModel = (SobotServiceInfoModel) obj;
if (serviceInfoModel != null) {
serviceInfoModel.setLogin_time(login_time);
serviceInfoModel.setToken(token);
serviceInfoModel.setLoginAccount(loginAcount);
if ((serviceInfoModel.getCallV6Flag() == 1 || SobotPermissionManager.isHasNewPermission(SobotPermissionManager.SCC)) && !SobotStringUtils.isEmpty(openApiHost)) {
//如果是v6呼叫
String tempHost = openApiHost;
if (tempHost.contains("/text")) {
tempHost = tempHost.replace("/text", "");
}
final SobotServiceInfoModel tempServiceInfoModel = serviceInfoModel;
doAccessToken(cancelTag, tempHost, serviceInfoModel.getToken(), new SobotResultBlock() {
@Override
public void resultBolok(SobotResultCode code, String msg, Object obj) {
if (code == SobotResultCode.CODE_SUCCEEDED) {
SobotServiceInfoModel tempUserEntity = tempServiceInfoModel;
if (obj != null && obj instanceof String && SobotStringUtils.isNoEmpty((String) obj)) {
String accessToken = (String) obj;
tempUserEntity.setAccess_token(accessToken);
//判断是否有对话功能
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
doOnline(cancelTag, mContext, host, paramsMap, tempUserEntity, resultBlock);
} else {
setServiceInfo(tempUserEntity);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, tempUserEntity);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", tempUserEntity);
}
}
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "登录失败 accessToken获取失败", null);
}
}
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "登录失败", null);
}
}
}
});
} else {
//判断是否有对话功能
if (SobotPermissionManager.checkPermission(SobotPermissionApi.USER_PERMISSION_TYPE_TALK) && isAppOrOnlineLogin) {
doOnline(cancelTag, mContext, host, paramsMap, serviceInfoModel, resultBlock);
} else {
setServiceInfo(serviceInfoModel);
SobotSharedPreferencesUtil.getInstance(mContext).put(SobotLoginConstant.SOBOT_LOGIN_USER_INFO, serviceInfoModel);
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_SUCCEEDED, "登录成功", serviceInfoModel);
}
}
}
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, "登录失败", null);
}
}
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, SobotStringUtils.isNoEmpty(msg) ? msg : "登录失败", "");
}
}
}
});
} else {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, (result != null && SobotStringUtils.isNoEmpty(result.getRetMsg())) ? result.getRetMsg() : "登录失败", "");
}
}
}
@Override
public void onError(Exception e, String msg, int responseCode) {
if (resultBlock != null) {
resultBlock.resultBolok(SobotResultCode.CODE_FAILED, msg, null);
}
}
@Override
public void inProgress(int progress) {
}
});
}
// sdk 执行退出登录 // sdk 执行退出登录
public void logOut(Object cancelTag, String host, String loginAcount, final SobotResultBlock resultBlock) { public void logOut(Object cancelTag, String host, String loginAcount, final SobotResultBlock resultBlock) {
if (SobotStringUtils.isEmpty(loginAcount)) { if (SobotStringUtils.isEmpty(loginAcount)) {
...@@ -507,7 +641,7 @@ public class SobotLoginTools { ...@@ -507,7 +641,7 @@ public class SobotLoginTools {
return; return;
} }
Map<String, Object> params = new HashMap<>(); Map<String, Object> params = new HashMap<>();
params.put("userEntity", loginAcount); params.put("loginUser", loginAcount);
Map<String, String> headerParams = new HashMap<>(); Map<String, String> headerParams = new HashMap<>();
headerParams.put("temp-id", getToken()); headerParams.put("temp-id", getToken());
headerParams.put("from", 2 + ""); headerParams.put("from", 2 + "");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment