add authcode and config api for open platform

This commit is contained in:
heavyrian2012
2022-05-15 10:19:07 +08:00
parent 92fa40f1fd
commit 391f7345c0
22 changed files with 2113 additions and 75 deletions
@@ -4,9 +4,13 @@ import cn.wildfirechat.common.APIPath;
import cn.wildfirechat.pojos.*;
import cn.wildfirechat.sdk.model.IMResult;
import cn.wildfirechat.sdk.utilities.ChannelHttpUtils;
import org.apache.commons.codec.digest.DigestUtils;
import java.util.List;
import static cn.wildfirechat.proto.ProtoConstants.ApplicationType.ApplicationType_Channel;
import static cn.wildfirechat.proto.ProtoConstants.ApplicationType.ApplicationType_Robot;
//仅专业版支持,社区版不支持
public class ChannelServiceApi {
private final ChannelHttpUtils channelHttpUtils;
@@ -76,12 +80,25 @@ public class ChannelServiceApi {
return channelHttpUtils.httpJsonPost(path, null, OutputStringList.class);
}
public IMResult<OutputApplicationUserInfo> applicationGetUserInfo(String authCode) throws Exception {
String path = APIPath.Channel_Application_Get_UserInfo;
InputApplicationGetUserInfo input = new InputApplicationGetUserInfo();
input.setAuthCode(authCode);
return channelHttpUtils.httpJsonPost(path, input, OutputApplicationUserInfo.class);
}
public IMResult<OutputVerifyApplicationUserInfo> verifyApplicationUserInfo(String token) throws Exception {
String path = APIPath.Channel_Verify_Application_UserInfo;
InputVerifyApplicationUserInfo input = new InputVerifyApplicationUserInfo();
input.setToken(token);
return channelHttpUtils.httpJsonPost(path, input, OutputVerifyApplicationUserInfo.class);
public OutputApplicationConfigData getApplicationSignature() {
int nonce = (int)(Math.random() * 100000 + 3);
long timestamp = System.currentTimeMillis()/1000;
String str = nonce + "|" + channelHttpUtils.getChannelId() + "|" + timestamp + "|" + channelHttpUtils.getChannelSecret();
String sign = DigestUtils.sha1Hex(str);
OutputApplicationConfigData configData = new OutputApplicationConfigData();
configData.setAppId(channelHttpUtils.getChannelId());
configData.setAppType(ApplicationType_Channel);
configData.setTimestamp(timestamp);
configData.setNonceStr(nonce+"");
configData.setSignature(sign);
return configData;
}
}
@@ -1196,6 +1196,9 @@ public class Main {
System.out.println("cancel group manager failure");
System.exit(-1);
}
OutputApplicationConfigData config = robotService.getApplicationSignature();
System.out.println(config);
}
@@ -1422,6 +1425,8 @@ public class Main {
System.out.println("get channel info failure");
System.exit(-1);
}
OutputApplicationConfigData config = channelServiceApi.getApplicationSignature();
System.out.println(config);
}
static void testSensitiveApi() throws Exception {
List<String> words = Arrays.asList("a","b","c");
@@ -3,11 +3,13 @@ package cn.wildfirechat.sdk;
import cn.wildfirechat.common.APIPath;
import cn.wildfirechat.pojos.*;
import cn.wildfirechat.sdk.model.IMResult;
import cn.wildfirechat.sdk.utilities.AdminHttpUtils;
import cn.wildfirechat.sdk.utilities.RobotHttpUtils;
import org.apache.commons.codec.digest.DigestUtils;
import java.util.List;
import static cn.wildfirechat.proto.ProtoConstants.ApplicationType.ApplicationType_Robot;
public class RobotService {
private final RobotHttpUtils robotHttpUtils;
@@ -216,11 +218,25 @@ public class RobotService {
return robotHttpUtils.httpJsonPost(path, input, Void.class);
}
public IMResult<OutputVerifyApplicationUserInfo> verifyApplicationUserInfo(String token) throws Exception {
String path = APIPath.Robot_Verify_Application_UserInfo;
InputVerifyApplicationUserInfo input = new InputVerifyApplicationUserInfo();
input.setToken(token);
return robotHttpUtils.httpJsonPost(path, input, OutputVerifyApplicationUserInfo.class);
public IMResult<OutputApplicationUserInfo> applicationGetUserInfo(String authCode) throws Exception {
String path = APIPath.Robot_Application_Get_UserInfo;
InputApplicationGetUserInfo input = new InputApplicationGetUserInfo();
input.setAuthCode(authCode);
return robotHttpUtils.httpJsonPost(path, input, OutputApplicationUserInfo.class);
}
public OutputApplicationConfigData getApplicationSignature() {
int nonce = (int)(Math.random() * 100000 + 3);
long timestamp = System.currentTimeMillis()/1000;
String str = nonce + "|" + robotHttpUtils.getRobotId() + "|" + timestamp + "|" + robotHttpUtils.getRobotSecret();
String sign = DigestUtils.sha1Hex(str);
OutputApplicationConfigData configData = new OutputApplicationConfigData();
configData.setAppId(robotHttpUtils.getRobotId());
configData.setAppType(ApplicationType_Robot);
configData.setTimestamp(timestamp);
configData.setNonceStr(nonce+"");
configData.setSignature(sign);
return configData;
}
@@ -115,4 +115,11 @@ public class ChannelHttpUtils {
return str == null || str.isEmpty();
}
public String getChannelId() {
return channelId;
}
public String getChannelSecret() {
return channelSecret;
}
}
@@ -118,4 +118,11 @@ public class RobotHttpUtils {
return str == null || str.isEmpty();
}
public String getRobotId() {
return robotId;
}
public String getRobotSecret() {
return robotSecret;
}
}