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;
}