Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
im-common
Project
Project
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
陈永峰
im-common
Commits
b0964296
Unverified
Commit
b0964296
authored
Jul 30, 2021
by
Yang Libin
Committed by
GitHub
Jul 30, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: update imclient and add junit test (#5)
parent
99bf2023
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
69 additions
and
19 deletions
+69
-19
pom.xml
pom.xml
+6
-1
IMClient.java
src/main/java/com/qcloud/im/IMClient.java
+21
-14
Account.java
src/main/java/com/qcloud/im/model/core/Account.java
+3
-3
GenericResult.java
...main/java/com/qcloud/im/model/response/GenericResult.java
+9
-0
IMGetAttrResult.java
...in/java/com/qcloud/im/model/response/IMGetAttrResult.java
+1
-1
AccountTest.java
src/test/java/com/qcloud/im/AccountTest.java
+29
-0
No files found.
pom.xml
View file @
b0964296
...
...
@@ -36,7 +36,12 @@
<artifactId>
commons-lang3
</artifactId>
<version>
3.12.0
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
4.13.2
</version>
<scope>
test
</scope>
</dependency>
</dependencies>
</project>
src/main/java/com/qcloud/im/IMClient.java
View file @
b0964296
...
...
@@ -6,8 +6,8 @@ import com.qcloud.im.model.core.Profile;
import
com.qcloud.im.model.core.SNS
;
import
com.qcloud.im.util.SigUtil
;
import
java.util.Random
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ThreadLocalRandom
;
/**
...
...
@@ -15,19 +15,19 @@ import java.util.concurrent.ConcurrentHashMap;
* @since 2021/07/29 16:11
*/
public
class
IMClient
{
private
static
ConcurrentHashMap
<
String
,
IMClient
>
imClient
=
new
ConcurrentHashMap
<
String
,
IMClient
>();
private
static
String
FORMAT_URL
=
"https://console.tim.qq.com/%s/%s/%s?sdkappid=%
s
&identifier=%s&usersig=%s&random=%d&contenttype=json"
;
private
static
ConcurrentHashMap
<
String
,
IMClient
>
imClient
=
new
ConcurrentHashMap
<>();
private
static
String
FORMAT_URL
=
"https://console.tim.qq.com/%s/%s/%s?sdkappid=%
d
&identifier=%s&usersig=%s&random=%d&contenttype=json"
;
/**
* core methods
*/
p
rivate
Account
account
;
p
rivate
Message
message
;
p
rivate
Profile
profile
;
p
rivate
SNS
sns
;
p
ublic
Account
account
;
p
ublic
Message
message
;
p
ublic
Profile
profile
;
p
ublic
SNS
sns
;
/**
* init property
*/
private
String
ver
=
"v4"
;
private
String
ver
sion
=
"v4"
;
private
Long
sdkAppId
;
private
String
userId
;
private
String
userSig
;
...
...
@@ -40,21 +40,28 @@ public class IMClient {
return
imClient
.
get
(
identify
);
}
public
static
IMClient
getInstance
(
Long
sdkAppId
,
String
userId
,
String
key
)
{
String
identify
=
sdkAppId
+
"_"
+
userId
;
if
(
imClient
.
get
(
identify
)
==
null
)
{
imClient
.
putIfAbsent
(
identify
,
new
IMClient
(
sdkAppId
,
userId
,
key
,
24
*
60
*
60L
));
}
return
imClient
.
get
(
identify
);
}
public
IMClient
(
Long
sdkAppId
,
String
userId
,
String
key
,
Long
expire
)
{
this
.
sdkAppId
=
sdkAppId
;
this
.
userId
=
userId
;
this
.
userSig
=
SigUtil
.
genUserSig
(
sdkAppId
,
userId
,
key
,
expire
);
this
.
userSig
=
SigUtil
.
genUserSig
(
sdkAppId
,
key
,
userId
,
expire
);
account
=
new
Account
(
this
);
message
=
new
Message
(
this
);
profile
=
new
Profile
(
this
);
sns
=
new
SNS
(
this
);
}
public
IMClient
()
{
}
public
String
getUrl
(
String
serviceName
,
String
command
)
{
return
String
.
format
(
FORMAT_URL
,
this
.
ver
,
serviceName
,
command
,
this
.
sdkAppId
,
this
.
userId
,
this
.
userSig
,
new
Random
().
nextInt
());
// 随机生成32位无符号整数
long
random
=
ThreadLocalRandom
.
current
().
nextLong
(
0
,
0x100000000
L
);
return
String
.
format
(
FORMAT_URL
,
this
.
version
,
serviceName
,
command
,
this
.
sdkAppId
,
this
.
userId
,
this
.
userSig
,
random
);
}
}
src/main/java/com/qcloud/im/model/core/Account.java
View file @
b0964296
package
com
.
qcloud
.
im
.
model
.
core
;
import
com.qcloud.im.IMClient
;
import
com.qcloud.im.model.request.
ImportMsg
Request
;
import
com.qcloud.im.model.request.
AccountImport
Request
;
import
com.qcloud.im.model.response.AccountImportResult
;
import
com.qcloud.im.util.HttpUtil
;
import
com.qcloud.im.util.JsonUtil
;
...
...
@@ -18,9 +18,9 @@ public class Account {
private
IMClient
imClient
;
public
AccountImportResult
accountImport
(
ImportMsgRequest
importMsg
Request
)
throws
IOException
{
public
AccountImportResult
accountImport
(
AccountImportRequest
accountImport
Request
)
throws
IOException
{
String
url
=
imClient
.
getUrl
(
SERVICE_NAME
,
ACCOUNT_IMPORT_COMMAND
);
String
result
=
HttpUtil
.
post
(
url
,
JsonUtil
.
obj2Str
(
importMsg
Request
),
null
);
String
result
=
HttpUtil
.
post
(
url
,
JsonUtil
.
obj2Str
(
accountImport
Request
),
null
);
return
JsonUtil
.
str2Obj
(
result
,
AccountImportResult
.
class
);
}
...
...
src/main/java/com/qcloud/im/model/response/GenericResult.java
View file @
b0964296
...
...
@@ -48,4 +48,13 @@ public abstract class GenericResult {
public
void
setErrorCode
(
String
errorCode
)
{
this
.
errorCode
=
errorCode
;
}
@Override
public
String
toString
()
{
return
"GenericResult{"
+
"actionStatus='"
+
actionStatus
+
'\''
+
", errorInfo='"
+
errorInfo
+
'\''
+
", errorCode='"
+
errorCode
+
'\''
+
'}'
;
}
}
src/main/java/com/qcloud/im/model/response/IMGetAttrResult.java
View file @
b0964296
...
...
@@ -10,7 +10,7 @@ import java.util.List;
*/
public
class
IMGetAttrResult
extends
GenericResult
{
@JsonProperty
(
"UserAttrs"
)
List
<
UserAttrItem
>
userAttrs
;
private
List
<
UserAttrItem
>
userAttrs
;
public
List
<
UserAttrItem
>
getUserAttrs
()
{
return
userAttrs
;
...
...
src/test/java/com/qcloud/im/AccountTest.java
0 → 100644
View file @
b0964296
package
com
.
qcloud
.
im
;
import
com.qcloud.im.model.request.AccountImportRequest
;
import
com.qcloud.im.model.response.AccountImportResult
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
java.io.IOException
;
/**
* @author bingo
* @since 2021/7/30 16:17
*/
public
class
AccountTest
{
@Test
public
void
testAccountImport
()
throws
IOException
{
long
appId
=
11212L
;
String
key
=
"xxx"
;
String
userId
=
"test"
;
IMClient
client
=
IMClient
.
getInstance
(
appId
,
userId
,
key
);
AccountImportRequest
request
=
new
AccountImportRequest
();
request
.
setFaceUrl
(
"http://www.qq.com"
);
request
.
setIdentifier
(
"bingo123"
);
request
.
setNick
(
"bingo"
);
AccountImportResult
accountImportResult
=
client
.
account
.
accountImport
(
request
);
Assert
.
assertEquals
(
accountImportResult
.
getActionStatus
(),
"OK"
);
}
}
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