❤닐️킬? Tiktok에 3 줄로 라이브로 연결 ?
Tiktoklive와 Tiktoklivesharp에서 영감을 얻은 Java 도서관. Tiktok의 내부 웹 캐스트 푸시 서비스에 연결하여 Tiktok Live의 실시간으로 댓글 및 선물과 같은 라이브 스트림 이벤트를 받으십시오. 라이브러리에는 사용자 이름 ( uniqueId ) 만 사용하여 웹 캐스트 서비스에 연결하는 래퍼가 포함되어 있습니다. 이를 통해 다른 스 트리머의 라이브 채팅뿐만 아니라 자신의 라이브 채팅에 연결할 수 있습니다. 자격 증명이 필요하지 않습니다. 회원 가입, 선물, 구독, 시청자, 팔로우, 공유, 질문, 좋아요 및 전투와 같은 이벤트를 추적 할 수 있습니다.
지원 불일치에 가입하고 #java-support 채널을 방문하여 질문, 공헌 및 아이디어를 얻으십시오. 누락 된/새로운 기능, 수정 등으로 풀 요청을 자유롭게 요청하십시오.
다른 프로그래밍 언어를 선호합니까?
참고 : 이것은 공식 API가 아닙니다. 리버스 엔지니어링 프로젝트입니다.
Maven
< repositories >
< repository >
< id >jitpack.io</ id >
< url >https://jitpack.io</ url >
</ repository >
</ repositories >
< dependencies >
< dependency >
< groupId >com.github.jwdeveloper.TikTok-Live-Java</ groupId >
< artifactId >Client</ artifactId >
< version >1.8.13-Release</ version >
< scope >compile</ scope >
</ dependency >
</ dependencies >Gradle
dependencyResolutionManagement {
repositoriesMode . set( RepositoriesMode . FAIL_ON_PROJECT_REPOS )
repositories {
mavenCentral()
maven { url ' https://jitpack.io ' }
}
}
dependencies {
implementation ' com.github.jwdeveloper.TikTok-Live-Java:Client:1.8.13-Release '
} TikTokLive . newClient ( "bangbetmenygy" )
. onGift (( liveClient , event ) ->
{
String message = switch ( event . getGift ()) {
case ROSE -> "ROSE!" ;
case GG -> "GOOD GAME" ;
case TIKTOK -> "Ye" ;
case CORGI -> "Nice gift" ;
default -> "Thank you for " + event . getGift (). getName ();
};
System . out . println ( event . getUser (). getProfileName () + " sends " + message );
})
. onGiftCombo (( liveClient , event ) ->
{
System . out . println ( event . getComboState ()+ " " + event . getCombo () + " " + event . getGift (). getName ());
})
. onRoomInfo (( liveClient , event ) ->
{
var roomInfo = event . getRoomInfo ();
System . out . println ( "Room Id: " + roomInfo . getRoomId ());
System . out . println ( "Likes: " + roomInfo . getLikesCount ());
System . out . println ( "Viewers: " + roomInfo . getViewersCount ());
})
. onJoin (( liveClient , event ) ->
{
System . out . println ( event . getUser (). getProfileName () + "Hello on my stream! " );
})
. onConnected (( liveClient , event ) ->
{
System . out . println ( "Connected to live " );
})
. onError (( liveClient , event ) ->
{
System . out . println ( "Error! " + event . getException (). getMessage ());
})
. buildAndConnect (); TikTokLive . newClient ( "bangbetmenygy" )
. configure (( settings ) ->
{
settings . setHostName ( "bangbetmenygy" ); // This method is useful in case you want change hostname later
settings . setClientLanguage ( "en" ); // Language
settings . setTimeout ( Duration . ofSeconds ( 2 )); // Connection timeout
settings . setLogLevel ( Level . ALL ); // Log level
settings . setPrintToConsole ( true ); // Printing all logs to console even if log level is Level.OFF
settings . setRetryOnConnectionFailure ( true ); // Reconnecting if TikTok user is offline
settings . setRetryConnectionTimeout ( Duration . ofSeconds ( 1 )); // Timeout before next reconnection
//Optional: Sometimes not every message from chat are send to TikTokLiveJava to fix this issue you can set sessionId
// documentation how to obtain sessionId https://github.com/isaackogan/TikTok-Live-Connector#send-chat-messages
settings . setSessionId ( "86c3c8bf4b17ebb2d74bb7fa66fd0000" );
//Optional:
//RoomId can be used as an override if you're having issues with HostId.
//You can find it in the HTML for the livestream-page
settings . setRoomId ( "XXXXXXXXXXXXXXXXX" );
})
. buildAndConnect ();
// 제어 :
메시지 :
디버그 :
TikTokLive . newClient ( "host-name" )
. onReconnecting (( liveClient , event ) ->
{
})
. buildAndConnect ();일반 오류 이벤트. 당신은 이것을 처리해야합니다.
TikTokLive . newClient ( "host-name" )
. onError (( liveClient , event ) ->
{
})
. buildAndConnect ();연결이 성공적으로 설정되면 트리거됩니다.
TikTokLive . newClient ( "host-name" )
. onConnected (( liveClient , event ) ->
{
})
. buildAndConnect ();연결이 연결이 끊어지면 트리거됩니다. 이 경우 Connect ()을 다시 호출하여 다시 연결로 논리를 가질 수 있습니다. 요금 제한을 피하기 위해 재 연결을 시도하기 전에 조금 기다려야합니다.
TikTokLive . newClient ( "host-name" )
. onDisconnected (( liveClient , event ) ->
{
})
. buildAndConnect ();모든 이벤트에 대한 기본 클래스
TikTokLive . newClient ( "host-name" )
. onEvent (( liveClient , event ) ->
{
})
. buildAndConnect ();모든 이벤트에 대한 기본 클래스
TikTokLive . newClient ( "host-name" )
. onEvent (( liveClient , event ) ->
{
})
. buildAndConnect ();새로운 채팅 댓글이 도착할 때마다 트리거됩니다.
TikTokLive . newClient ( "host-name" )
. onComment (( liveClient , event ) ->
{
})
. buildAndConnect ();Liveroominfo가 좋아, 시청자, 순위와 같이 업데이트되었을 때 트리거되었습니다 ....
TikTokLive . newClient ( "host-name" )
. onRoomInfo (( liveClient , event ) ->
{
})
. buildAndConnect ();사용자가 콤보가없는 선물 (대부분의 비싼 선물) 또는 콤보가 완료된 선물을 보낼 때 트리거
TikTokLive . newClient ( "host-name" )
. onGift (( liveClient , event ) ->
{
})
. buildAndConnect ();사용자가 구독을 생성 할 때 트리거합니다.
TikTokLive . newClient ( "host-name" )
. onSubscribe (( liveClient , event ) ->
{
})
. buildAndConnect ();사용자가 스 트리머를 따라갈 때 트리거합니다. 사교 행사를 기반으로합니다.
TikTokLive . newClient ( "host-name" )
. onFollow (( liveClient , event ) ->
{
})
. buildAndConnect ();선물이 전송 될 때마다 트리거됩니다
@giftsendtype 3 개의 상태가 있습니다
예를 들어 사용자가 콤보로 선물을 보낼 때
> 콤보 : 1-> combostate = giftsendtype.begin
콤보 : 4-> combostate = giftsendtype.active
콤보 : 8-> combostate = giftsendtype.active
콤보 : 12-> combostate = giftsendtype.finished
Combostate가 완료되면 Tiktokgiftcomboevent와 Tiktokgiftevent 이벤트가 트리거됩니다.
TikTokLive . newClient ( "host-name" )
. onGiftCombo (( liveClient , event ) ->
{
})
. buildAndConnect ();라이브 스트림이 호스트에 의해 종료 될 때 트리거됩니다. 또한 TiktokDisconnectedEvent 이벤트를 트리거합니다.
TikTokLive . newClient ( "host-name" )
. onLiveEnded (( liveClient , event ) ->
{
})
. buildAndConnect ();누군가가 질문 기능을 통해 새로운 질문을 할 때마다 트리거되었습니다.
TikTokLive . newClient ( "host-name" )
. onQuestion (( liveClient , event ) ->
{
})
. buildAndConnect ();사용자가 스트림을 공유 할 때 트리거합니다. 사교 행사를 기반으로합니다.
TikTokLive . newClient ( "host-name" )
. onShare (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onLiveUnpaused (( liveClient , event ) ->
{
})
. buildAndConnect ();가입자가 감정을 보낼 때마다 트리거됩니다 (스티커).
TikTokLive . newClient ( "host-name" )
. onEmote (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onJoin (( liveClient , event ) ->
{
})
. buildAndConnect ();시청자가 스 트리머에 좋아하는 것을 보낼 때 트리거됩니다. 많은 시청자가있는 스트림의 경우이 이벤트가 항상 Tiktok에 의해 트리거되는 것은 아닙니다.
TikTokLive . newClient ( "host-name" )
. onLike (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onLivePaused (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onWebsocketResponse (( liveClient , event ) ->
{
})
. buildAndConnect ();Protobuf 인코딩 된 웹 캐스트 메시지가 도착할 때마다 트리거됩니다. 사용 케이스에 따라 이진 객체를 필자적으로 해제 할 수 있습니다.
TikTokLive . newClient ( "host-name" )
. onWebsocketUnhandledMessage (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onHttpResponse (( liveClient , event ) ->
{
})
. buildAndConnect ();Tiktok이 데이터를 보낼 때마다 트리거되었습니다. Protobuf 메시지로 들어오는 데이터. 사용 케이스에 따라 이진 객체를 필자적으로 해제 할 수 있습니다.
TikTokLive . newClient ( "host-name" )
. onWebsocketMessage (( liveClient , event ) ->
{
})
. buildAndConnect ();시간을 절약 할 수있는 Tiktoklivejava에 대한 확장 목록 (Addons)
/**
*
* Listeners are an alternative way of handling events.
* I would to suggest to use then when logic of handing event
* is more complex
*
*/
public static void main ( String [] args ) throws IOException {
showLogo ();
CustomListener customListener = new CustomListener ();
TikTokLive . newClient ( SimpleExample . TIKTOK_HOSTNAME )
. addListener ( customListener )
. buildAndConnect ();
System . in . read ();
}
/**
*
* Method in TikTokEventListener should meet 4 requirements to be detected
* - must have @TikTokEventHandler annotation
* - must have 2 parameters
* - first parameter must be LiveClient
* - second must be class that extending TikTokEvent
*/
public static class CustomListener {
@ TikTokEventObserver
public void onLike ( LiveClient liveClient , TikTokLikeEvent event ) {
System . out . println ( event . toString ());
}
@ TikTokEventObserver
public void onError ( LiveClient liveClient , TikTokErrorEvent event ) {
// event.getException().printStackTrace();
}
@ TikTokEventObserver
public void onComment ( LiveClient liveClient , TikTokCommentEvent event ) {
var userName = event . getUser (). getName ();
var text = event . getText ();
liveClient . getLogger (). info ( userName + ": " + text );
}
@ TikTokEventObserver
public void onGift ( LiveClient liveClient , TikTokGiftEvent event ) {
var message = switch ( event . getGift ()) {
case ROSE -> "Thanks :)" ;
case APPETIZERS -> ":OO" ;
case APRIL -> ":D" ;
case TIKTOK -> ":P" ;
case CAP -> ":F" ;
default -> ":I" ;
};
liveClient . getLogger (). info ( message );
}
@ TikTokEventHandler
public void onAnyEvent ( LiveClient liveClient , TikTokEvent event ) {
liveClient . getLogger (). info ( event . getClass (). getSimpleName ());
}
}
// 기고자를위한 도서관 문서
당신의 개선은 환영합니다! 문제를 열거 나 요청을 시작하십시오.