增加腾讯云推送

This commit is contained in:
2025-08-11 09:13:20 +08:00
parent 6eed13b07d
commit 5291e774ad
4 changed files with 87 additions and 23 deletions

View File

@@ -56,7 +56,8 @@ public class BindSnController {
try {
String randomString = RandomStringUtils.randomAlphanumeric(32);
PushUtils.aliyunAsyncPush(randomString, userPhone, sn);
// PushUtils.aliyunAsyncPush(randomString, userPhone, sn);
PushUtils.tpnsPush(randomString, userPhone, sn);
return Result.ok().message("send message success");
} catch (Exception e) {
e.printStackTrace();

View File

@@ -6,13 +6,24 @@ import com.aliyun.sdk.service.push20160801.AsyncClient;
import com.aliyun.sdk.service.push20160801.models.PushRequest;
import com.aliyun.sdk.service.push20160801.models.PushResponse;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.tencent.xinge.XingeApp;
import com.tencent.xinge.bean.AudienceType;
import com.tencent.xinge.bean.Message;
import com.tencent.xinge.bean.MessageAndroid;
import com.tencent.xinge.bean.MessageType;
import com.tencent.xinge.push.app.PushAppRequest;
import darabonba.core.client.ClientOverrideConfiguration;
import org.glassfish.jaxb.core.v2.TODO;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
public class PushUtils {
public static void aliyunAsyncPush(String verifyKey, String phone,String sn) throws ExecutionException, InterruptedException {
public static void aliyunAsyncPush(String verifyKey, String phone, String sn) throws ExecutionException, InterruptedException {
// HttpClient Configuration
/*HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
.connectionTimeout(Duration.ofSeconds(10)) // Set the connection timeout time, the default is 10 seconds
@@ -50,6 +61,10 @@ public class PushUtils {
//.setConnectTimeout(Duration.ofSeconds(30))
)
.build();
JsonObject params = new JsonObject();
params.addProperty("verify_key", verifyKey);
params.addProperty("phone", phone);
params.addProperty("time", System.currentTimeMillis());
// Parameter settings for API request
PushRequest pushRequest = PushRequest.builder()
@@ -60,7 +75,7 @@ public class PushUtils {
.targetValue(sn)
.title("1")
.storeOffline(true)
.body("{ \"perator\":\""+phone+"\",\"time\":\""+System.currentTimeMillis()+"\",\"verify_key\":\""+verifyKey+"\" }")
.body(params.toString())
// Request-level configuration rewrite, can set Http request parameters, etc.
// .requestConfiguration(RequestConfiguration.create().setHttpHeaders(new HttpHeaders()))
.build();
@@ -82,5 +97,43 @@ public class PushUtils {
client.close();
}
public static void tpnsPush(String verifyKey, String phone, String sn) {
XingeApp xingeApp = new XingeApp.Builder()
.appId("1500043720")
.secretKey("1712af9e3079087447f4c35d2f622b89")
.domainUrl("https://api.tpns.tencent.com/")
.build();
PushAppRequest pushAppRequest = new PushAppRequest();
// 选择推送目标类型
pushAppRequest.setAudience_type(AudienceType.account);
// 消息类型:通知栏或透传消息
pushAppRequest.setMessage_type(MessageType.message);
// 选择推送的账号类型
//todo 为1时不能接收到不知什么原因 https://console.cloud.tencent.com/tpns/user-tools/1500043720/ap-guangzhou-1
pushAppRequest.setAccount_push_type(0);
JsonObject params = new JsonObject();
params.addProperty("verify_key", verifyKey);
params.addProperty("phone", phone);
params.addProperty("time", System.currentTimeMillis());
Message message = new Message();
// 推送标题
message.setTitle("1");
// 推送内容
message.setContent(params.toString());
MessageAndroid messageAndroid = new MessageAndroid();
message.setAndroid(messageAndroid);
pushAppRequest.setMessage(message);
ArrayList<String> accountList = new ArrayList<>();
// 添加绑定账号
accountList.add(sn);
// 设置账号列表
pushAppRequest.setAccount_list(accountList);
JSONObject ret = xingeApp.pushApp(pushAppRequest);
System.out.println(ret);
}
}