diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/http/LiveHttpClient.java b/API/src/main/java/io/github/jwdeveloper/tiktok/http/LiveHttpClient.java index 2eb671d..21cee11 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/http/LiveHttpClient.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/http/LiveHttpClient.java @@ -66,5 +66,5 @@ public interface LiveHttpClient LiveConnectionData.Response fetchLiveConnectionData(LiveConnectionData.Request request); - boolean sendChat(LiveRoomInfo roomInfo, String content); + boolean sendChat(LiveRoomInfo roomInfo, String content, String sessionId, String ttTargetIdc); } \ No newline at end of file diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java b/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java index a30ff85..18f9fa9 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/live/LiveClient.java @@ -102,4 +102,12 @@ public interface LiveClient { *

We cannot fix this as it is a TikTok issue, not a library issue. */ boolean sendChat(String content); + + /** + * Send a chat message to the connected room + * @return true if successful, otherwise false + * @apiNote This is known to return true on some sessionIds despite failing! + *

We cannot fix this as it is a TikTok issue, not a library issue. + */ + boolean sendChat(String content, String sessionId, String ttTargetIdc); } \ No newline at end of file diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java index bb58426..ac6acca 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClient.java @@ -199,7 +199,12 @@ public class TikTokLiveClient implements LiveClient @Override public boolean sendChat(String content) { - return httpClient.sendChat(roomInfo, content); + return sendChat(content, clientSettings.getSessionId(), clientSettings.getTtTargetIdc()); + } + + @Override + public boolean sendChat(String content, String sessionId, String ttTargetIdc) { + return httpClient.sendChat(roomInfo, content, sessionId, ttTargetIdc); } public void connectAsync(Consumer onConnection) { diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java index cba2209..a85c0bc 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpClient.java @@ -182,23 +182,23 @@ public class TikTokLiveHttpClient implements LiveHttpClient } @Override - public boolean sendChat(LiveRoomInfo roomInfo, String content) { + public boolean sendChat(LiveRoomInfo roomInfo, String content, String sessionId, String ttTargetIdc) { var proxyClientSettings = clientSettings.getHttpSettings().getProxyClientSettings(); if (proxyClientSettings.isEnabled()) { while (proxyClientSettings.hasNext()) { try { - return requestSendChat(roomInfo, content); + return requestSendChat(roomInfo, content, sessionId, ttTargetIdc); } catch (TikTokProxyRequestException ignored) {} } } - return requestSendChat(roomInfo, content); + return requestSendChat(roomInfo, content, sessionId, ttTargetIdc); } - public boolean requestSendChat(LiveRoomInfo roomInfo, String content) { + public boolean requestSendChat(LiveRoomInfo roomInfo, String content, String sessionId, String ttTargetIdc) { JsonObject body = new JsonObject(); body.addProperty("content", content); - body.addProperty("sessionId", clientSettings.getSessionId()); - body.addProperty("ttTargetIdc", clientSettings.getTtTargetIdc()); + body.addProperty("sessionId", sessionId); + body.addProperty("ttTargetIdc", ttTargetIdc); body.addProperty("roomId", roomInfo.getRoomId()); HttpClientBuilder builder = httpFactory.client(clientSettings.isUseEulerstreamEnterprise() ? TIKTOK_CHAT_ENTERPRISE_URL : TIKTOK_CHAT_URL) .withHeader("Content-Type", "application/json"); diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java index dbcdda1..03594eb 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveHttpOfflineClient.java @@ -64,7 +64,7 @@ public class TikTokLiveHttpOfflineClient implements LiveHttpClient { } @Override - public boolean sendChat(LiveRoomInfo roomInfo, String content) { + public boolean sendChat(LiveRoomInfo roomInfo, String content, String sessionId, String ttTargetIdc) { // DO NOTHING return false; }