Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
Sobot_module_Dev
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sobot_android
Sobot_module_Dev
Commits
8d980ec5
Commit
8d980ec5
authored
Nov 04, 2024
by
郭倩芳
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
common 统一鉴权,去掉acessToken和tempId
parent
8d9cfeda
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
113 additions
and
109 deletions
+113
-109
build.gradle
app/build.gradle
+1
-1
MainActivity.java
app/src/main/java/com/sobot/moduletest/MainActivity.java
+71
-65
build.gradle
sobot_common/build.gradle
+2
-2
sobot-common-publish-mavencentral.gradle
sobot_common/sobot-common-publish-mavencentral.gradle
+1
-1
SobotLoginTools.java
...src/main/java/com/sobot/common/login/SobotLoginTools.java
+38
-18
ServiceInfoManager.java
...in/java/com/sobot/common/login/db/ServiceInfoManager.java
+0
-4
SobotServiceInfoModel.java
...a/com/sobot/common/login/model/SobotServiceInfoModel.java
+0
-18
No files found.
app/build.gradle
View file @
8d980ec5
...
...
@@ -35,7 +35,7 @@ dependencies {
implementation
'com.google.android.material:material:1.4.+'
implementation
project
(
':sobot_common'
)
implementation
project
(
':sobot_widget'
)
//
implementation project(':sobot_album')
implementation
project
(
':sobot_album'
)
// implementation 'com.sobot.library:widget:0.3'
// api 'com.sobot.library:sobotcommon:1.0'
// api 'com.sobot.library:sobotcommon_x:1.0'
...
...
app/src/main/java/com/sobot/moduletest/MainActivity.java
View file @
8d980ec5
...
...
@@ -18,6 +18,10 @@ import androidx.annotation.NonNull;
//import com.sobot.album.SobotAlbum;
//import com.sobot.album.api.widget.Widget;
//import com.sobot.album.app.preview.PreviewAlbumActivity;
import
com.sobot.album.Action
;
import
com.sobot.album.AlbumFile
;
import
com.sobot.album.SobotAlbum
;
import
com.sobot.album.api.widget.Widget
;
import
com.sobot.common.login.SobotLoginTools
;
import
com.sobot.common.login.callback.SobotResultBlock
;
import
com.sobot.common.login.callback.SobotResultCode
;
...
...
@@ -220,31 +224,33 @@ public class MainActivity extends SobotBaseActivity {
// for (int i = 0; i < 100000; i++) {
// stringBuilder.append("asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的asdfsadfas撒旦发射点发射点大师傅士大夫是地方撒旦发射点发射点发生地方撒地方士大夫撒旦飞洒地方是的");
// }
// SobotNetLogUtils.i(stringBuilder.toString());
// Map<String, Object> map1 = new HashMap<>();
// map1.put("from", 2 + "");
// map1.put("way", "10");
// 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", "zhangxy@zhichi.com", "app123456", map1, new SobotResultBlock() {
// @Override
// public void resultBolok(SobotResultCode code, String msg, Object obj) {
// SobotLoginTools.getInstance().checkExpiresToken();
// SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken() + "");
// SobotLogUtils.i(SobotLoginTools.getInstance().getTempId());
// SobotLogUtils.i(SobotLoginTools.getInstance().getToken() + "");
// SobotLogUtils.i(SobotLoginTools.getInstance().getServiceInfo().getStatus() + "====登录状态======");
// if(obj instanceof SobotServiceInfoModel){
// SobotLogUtils.i("默认登录状态===="+((SobotServiceInfoModel)obj).getDefaultAppLoginStatus());
// }
//// SobotLoginTools.getInstance().logOut(MainActivity.this, "https://test-branche1.sobot.com/text", "zhengnw@zhichi.com", new SobotResultBlock() {
//// @Override
//// public void resultBolok(SobotResultCode code, String msg, Object obj) {
////
//// }
//// });
// }
// });
Map
<
String
,
Object
>
map1
=
new
HashMap
<>();
map1
.
put
(
"from"
,
2
+
""
);
map1
.
put
(
"way"
,
"10"
);
map1
.
put
(
"ack"
,
"1"
);
map1
.
put
(
"version"
,
"3.3.9"
);
SobotLoginTools
.
getInstance
().
doLogin
(
MainActivity
.
this
,
getSobotBaseContext
(),
true
,
"https://api-c-test.sobot.com/text"
,
"https://api-c-test.sobot.com/text"
,
"zengzhi@zhichi.com"
,
"Xiaoxin818"
,
""
,
map1
,
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
if
(
code
==
SobotResultCode
.
CODE_SUCCEEDED
)
{
SobotLoginTools
.
getInstance
().
checkExpiresToken
();
// SobotLogUtils.i(SobotLoginTools.getInstance().getAccessToken() + "");
SobotLogUtils
.
i
(
SobotLoginTools
.
getInstance
().
getToken
()
+
""
);
SobotLogUtils
.
i
(
SobotLoginTools
.
getInstance
().
getServiceInfo
().
getStatus
()
+
"====登录状态======"
);
if
(
obj
instanceof
SobotServiceInfoModel
)
{
SobotLogUtils
.
i
(
"默认登录状态===="
+
((
SobotServiceInfoModel
)
obj
).
getDefaultAppLoginStatus
());
}
}
else
{
SobotLogUtils
.
i
(
"code ="
+
code
+
",msg="
+
msg
+
",obj="
+
obj
);
}
// SobotLoginTools.getInstance().logOut(MainActivity.this, "https://test-branche1.sobot.com/text", "zhengnw@zhichi.com", new SobotResultBlock() {
// @Override
// public void resultBolok(SobotResultCode code, String msg, Object obj) {
//
// }
// });
}
});
// SobotLoginTools.getInstance().loginWithAppkey(MainActivity.this, getSobotBaseContext(), true, "https://api-c.sobot.com/text", "https://api-c.soboten.com/text", "zhengnw@zhichi.com", "b83B6E072W29", "4ce7ca987fcf43beb17ed1eca84dd760", map1, new SobotResultBlock() {
// @Override
...
...
@@ -287,13 +293,13 @@ public class MainActivity extends SobotBaseActivity {
// openAlbum();
// }
// };
//
if (checkIsShowPermissionPop(getString(R.string.sobot_memory_card), getString(R.string.sobot_memory_card_yongtu), 1, 4)) {
//
return;
//
}
//
if (!checkStoragePermission(4)) {
//
return;
//
}
//
openAlbum();
if
(
checkIsShowPermissionPop
(
getString
(
R
.
string
.
sobot_memory_card
),
getString
(
R
.
string
.
sobot_memory_card_yongtu
),
1
,
4
))
{
return
;
}
if
(!
checkStoragePermission
(
4
))
{
return
;
}
openAlbum
();
// selectPicFromLocal();
// preview();
...
...
@@ -357,40 +363,40 @@ public class MainActivity extends SobotBaseActivity {
// .start();
// }
//
private void openAlbum() {
//
SobotAlbum.album(MainActivity.this)
//
.multipleChoice()
//
.columnCount(4)
//
.selectCount(4)
//
.camera(false)
//
.cameraVideoQuality(1)
//
.cameraVideoLimitDuration(Integer.MAX_VALUE)
//
.cameraVideoLimitBytes(Integer.MAX_VALUE)
//
.checkedList(mAlbumFiles)
//
.widget(
//
Widget.newDarkBuilder(MainActivity.this)
//
.title("")
//
.build()
//
)
//
.onResult(new Action<ArrayList<AlbumFile>>() {
//
@Override
//
public void onAction(@NonNull ArrayList<AlbumFile> result) {
//
if (result.size() > 0) {
//
//
//
}
//
}
//
})
//
.onCancel(new Action<String>() {
//
@Override
//
public void onAction(@NonNull String result) {
//
//取消选择
//
}
//
})
//
.start();
//
}
private
void
openAlbum
()
{
SobotAlbum
.
album
(
MainActivity
.
this
)
.
multipleChoice
()
.
columnCount
(
4
)
.
selectCount
(
4
)
.
camera
(
false
)
.
cameraVideoQuality
(
1
)
.
cameraVideoLimitDuration
(
Integer
.
MAX_VALUE
)
.
cameraVideoLimitBytes
(
Integer
.
MAX_VALUE
)
.
checkedList
(
mAlbumFiles
)
.
widget
(
Widget
.
newDarkBuilder
(
MainActivity
.
this
)
.
title
(
""
)
.
build
()
)
.
onResult
(
new
Action
<
ArrayList
<
AlbumFile
>>()
{
@Override
public
void
onAction
(
@NonNull
ArrayList
<
AlbumFile
>
result
)
{
if
(
result
.
size
()
>
0
)
{
}
}
})
.
onCancel
(
new
Action
<
String
>()
{
@Override
public
void
onAction
(
@NonNull
String
result
)
{
//取消选择
}
})
.
start
();
}
//
//
private ArrayList<AlbumFile> mAlbumFiles = new ArrayList<>();//编辑的图片地址
private
ArrayList
<
AlbumFile
>
mAlbumFiles
=
new
ArrayList
<>();
//编辑的图片地址
@Override
protected
void
initData
()
{
...
...
sobot_common/build.gradle
View file @
8d980ec5
...
...
@@ -11,7 +11,7 @@ android {
//这里就是打jar包
task
makeJar
(
type:
Copy
)
{
//删除旧的jar包
delete
'build/libs/sobot_common_x_1.7.
6
.jar'
delete
'build/libs/sobot_common_x_1.7.
8
.jar'
//原地址
from
(
'build/intermediates/packaged-classes/release/'
)
//导出jar包的地址
...
...
@@ -19,7 +19,7 @@ android {
//包含的jar包
include
(
'classes.jar'
)
//重命名jar包为mysdk
rename
(
'classes.jar'
,
'sobot_common_x_
1.7.8
.jar'
)
rename
(
'classes.jar'
,
'sobot_common_x_
2.0.0
.jar'
)
}
makeJar
.
dependsOn
(
build
)
}
...
...
sobot_common/sobot-common-publish-mavencentral.gradle
View file @
8d980ec5
...
...
@@ -12,7 +12,7 @@ task androidSourcesJar(type: Jar) {
ext
{
PUBLISH_GROUP_ID
=
"com.sobot.library"
//项目包名
PUBLISH_ARTIFACT_ID
=
'sobotcommon_x'
//项目名
PUBLISH_VERSION
=
'
1.7.8.3
'
//版本号
PUBLISH_VERSION
=
'
2.0.1
'
//版本号
}
...
...
sobot_common/src/main/java/com/sobot/common/login/SobotLoginTools.java
View file @
8d980ec5
...
...
@@ -113,22 +113,6 @@ public class SobotLoginTools {
//呼叫 v6 获取 accessToken
public
String
getAccessToken
()
{
if
(
getServiceInfo
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
getServiceInfo
().
getAccess_token
());
}
return
""
;
}
//呼叫 v6 获取 accessToken
public
String
getTempId
()
{
if
(
getServiceInfo
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
getServiceInfo
().
getTempId
());
}
return
""
;
}
//呼叫 v6 获取 accessToken
public
String
getToken
()
{
if
(
getServiceInfo
()
!=
null
)
{
return
SobotStringUtils
.
checkStringIsNull
(
getServiceInfo
().
getToken
());
...
...
@@ -171,7 +155,6 @@ public class SobotLoginTools {
public
void
clearLoginToken
()
{
SobotServiceInfoModel
tempUserEntity
=
getServiceInfo
();
if
(
tempUserEntity
!=
null
)
{
tempUserEntity
.
setAccess_token
(
""
);
tempUserEntity
.
setToken
(
""
);
setServiceInfo
(
tempUserEntity
);
}
...
...
@@ -241,6 +224,7 @@ public class SobotLoginTools {
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
();
requestLanguage
(
host
,
token
,
""
);
getuserEntityInfo
(
cancelTag
,
mContext
,
host
,
token
,
""
,
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
...
...
@@ -338,6 +322,7 @@ public class SobotLoginTools {
@Override
public
void
onResponse
(
String
response
)
{
TokenModel
result
=
SobotGsonUtil
.
jsonToBean
(
response
,
TokenModel
.
class
);
if
(
result
!=
null
&&
!
SobotStringUtils
.
isEmpty
(
result
.
getRet_code
())
&&
"000000"
.
equals
(
result
.
getRet_code
())
&&
result
.
getItem
()
!=
null
&&
SobotStringUtils
.
isNoEmpty
(
result
.
getItem
().
getToken
()))
{
String
ctoken
=
result
.
getItem
().
getToken
();
Map
<
String
,
String
>
headerMap
=
new
HashMap
<>();
...
...
@@ -353,6 +338,7 @@ public class SobotLoginTools {
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
();
requestLanguage
(
host
,
token
,
""
);
getuserEntityInfo
(
cancelTag
,
mContext
,
host
,
token
,
""
,
new
SobotResultBlock
()
{
@Override
public
void
resultBolok
(
SobotResultCode
code
,
String
msg
,
Object
obj
)
{
...
...
@@ -425,7 +411,42 @@ public class SobotLoginTools {
}
});
}
public
void
requestLanguage
(
String
host
,
String
token
,
String
language
){
Map
<
String
,
Object
>
tokebMap
=
new
HashMap
<>();
String
nowMills
=
System
.
currentTimeMillis
()
+
""
;
tokebMap
.
put
(
"create_time"
,
nowMills
);
tokebMap
.
put
(
"projectCode"
,
"Android"
);
tokebMap
.
put
(
"langType"
,
"zh"
);
tokebMap
.
put
(
"catalogCodes"
,
"app"
);
tokebMap
.
put
(
"from"
,
"2"
);
String
url
=
host
.
replace
(
"/text"
,
""
).
replace
(
"api-c-"
,
""
)
+
"/basic-system/newMultiLang/getSimpleMultiLanguage"
;
Map
<
String
,
String
>
headerMap
=
new
HashMap
<>();
if
(!
SobotStringUtils
.
isEmpty
(
token
))
{
headerMap
.
put
(
"temp-id"
,
token
);
headerMap
.
put
(
"authorization"
,
"Bearer "
+
token
);
}
if
(!
SobotStringUtils
.
isEmpty
(
language
))
{
headerMap
.
put
(
"language"
,
language
);
}
headerMap
.
put
(
"from"
,
"2"
);
//获取 公司token
SobotHttpUtils
.
doGet
(
host
,
url
,
8000
,
tokebMap
,
headerMap
,
new
HttpBaseUtils
.
StringCallBack
()
{
@Override
public
void
onResponse
(
String
response
)
{
}
@Override
public
void
onError
(
Exception
e
,
String
s
,
int
i
)
{
}
@Override
public
void
inProgress
(
int
i
)
{
}
});
}
/**
* 执行登录操作
* 1、通过账号密码登录获取token;2、根据token获取客服角色权限等信息;3、如果是呼叫V6或者电销,先获取AccessToken;4、再根据客服app或者客服SDK登录同时又买了在线产品判断是否执行在线操作逻辑
...
...
@@ -708,7 +729,6 @@ public class SobotLoginTools {
SobotServiceInfoModel
tempServiceInfoModel
=
infoModel
;
tempServiceInfoModel
.
setPu
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getPu
()));
tempServiceInfoModel
.
setPuid
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getPuid
()));
tempServiceInfoModel
.
setTempId
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getTempId
()));
tempServiceInfoModel
.
setWslinkDefault
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getWslinkDefault
()));
tempServiceInfoModel
.
setImFlag
(
userEntity
.
getImFlag
());
tempServiceInfoModel
.
setKbVersion
(
SobotStringUtils
.
checkStringIsNull
(
userEntity
.
getKbVersion
()));
...
...
sobot_common/src/main/java/com/sobot/common/login/db/ServiceInfoManager.java
View file @
8d980ec5
...
...
@@ -53,7 +53,6 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
@Override
public
SobotServiceInfoModel
parseCursorToBean
(
Cursor
cursor
)
{
SobotServiceInfoModel
model
=
new
SobotServiceInfoModel
();
model
.
setTempId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"tempId"
)));
model
.
setServiceNick
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"nickName"
)));
model
.
setMaxAccept
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"maxAccept"
)));
model
.
setCompanyName
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyName"
)));
...
...
@@ -76,7 +75,6 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
model
.
setRobotVersion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"robotVersion"
))
+
""
);
model
.
setOnlineVersion
(
cursor
.
getInt
(
cursor
.
getColumnIndex
(
"onlineVersion"
))
+
""
);
model
.
setCompanyId
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"companyId"
)));
model
.
setAccess_token
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
SobotServiceInfoModel
.
ACCESS_TOKEN
)));
model
.
setLogin_time
(
cursor
.
getLong
(
cursor
.
getColumnIndex
(
SobotServiceInfoModel
.
LOGIN_TIME
)));
model
.
setLoginAccount
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"login_account"
)));
model
.
setLoginPwd
(
cursor
.
getString
(
cursor
.
getColumnIndex
(
"login_pwd"
)));
...
...
@@ -104,7 +102,6 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
public
ContentValues
getContentValues
(
SobotServiceInfoModel
infoModel
)
{
ContentValues
contentValues
=
new
ContentValues
();
contentValues
.
put
(
"_id"
,
8888
);
contentValues
.
put
(
"tempId"
,
infoModel
.
getTempId
());
contentValues
.
put
(
"serviceNick"
,
infoModel
.
getServiceNick
());
contentValues
.
put
(
"maxAccept"
,
infoModel
.
getMaxAccept
());
contentValues
.
put
(
"faceImg"
,
infoModel
.
getFaceImg
());
...
...
@@ -132,7 +129,6 @@ public class ServiceInfoManager extends SobotCommonDao<SobotServiceInfoModel> {
contentValues
.
put
(
"robotVersion"
,
infoModel
.
getRobotVersion
());
contentValues
.
put
(
"onlineVersion"
,
infoModel
.
getOnlineVersion
());
contentValues
.
put
(
"companyId"
,
infoModel
.
getCompanyId
());
contentValues
.
put
(
SobotServiceInfoModel
.
ACCESS_TOKEN
,
infoModel
.
getAccess_token
());
contentValues
.
put
(
SobotServiceInfoModel
.
LOGIN_TIME
,
infoModel
.
getLogin_time
());
contentValues
.
put
(
"login_account"
,
infoModel
.
getLoginAccount
());
contentValues
.
put
(
"login_pwd"
,
infoModel
.
getLoginPwd
());
...
...
sobot_common/src/main/java/com/sobot/common/login/model/SobotServiceInfoModel.java
View file @
8d980ec5
...
...
@@ -90,7 +90,6 @@ public class SobotServiceInfoModel implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
private
String
loginAccount
;
//登录账号
private
String
loginPwd
;
//登录密码
private
String
tempId
;
//客服temp-id
private
int
maxAccept
;
//最大接待量
private
int
status
;
//1:在线,0:离线,2-人工忙碌,3-人工小休,4-人工培训,5-人工会议,6-人工用餐,7-人工活动
...
...
@@ -113,7 +112,6 @@ public class SobotServiceInfoModel implements Serializable {
private
String
robotVersion
;
//机器人,查询版本v6/v1
private
String
onlineVersion
;
//在线,查询版本v6/v1
private
String
access_token
;
//呼叫v6
public
static
final
String
ACCESS_TOKEN
=
"access_token"
;
//呼叫v6 accessToken
...
...
@@ -230,14 +228,6 @@ public class SobotServiceInfoModel implements Serializable {
this
.
puid
=
puid
;
}
public
String
getTempId
()
{
return
tempId
;
}
public
void
setTempId
(
String
tempId
)
{
this
.
tempId
=
tempId
;
}
public
int
getStatus
()
{
return
status
;
...
...
@@ -312,14 +302,6 @@ public class SobotServiceInfoModel implements Serializable {
this
.
kbVersion
=
kbVersion
;
}
public
String
getAccess_token
()
{
return
access_token
;
}
public
void
setAccess_token
(
String
access_token
)
{
this
.
access_token
=
access_token
;
}
public
long
getLogin_time
()
{
return
login_time
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment