❤️❤️? Connectez-vous à Tiktok en direct en 3 lignes ? ❤️❤️
Une bibliothèque Java inspirée de Tiktoklive et Tiktoklivesharp. Utilisez-le pour recevoir des événements en direct tels que des commentaires et des cadeaux en temps réel de Tiktok Live en se connectant au service push de webcast interne de Tiktok. La bibliothèque comprend un wrapper qui se connecte au service Webcast en utilisant uniquement le nom d'utilisateur ( uniqueId ). Cela vous permet de vous connecter à votre propre chat en direct ainsi qu'à la conversation en direct d'autres streamers. Aucune information d'identification n'est requise. Des événements tels que des membres se joignant, des cadeaux, des abonnements, des téléspectateurs, des suit, des partages, des questions, des likes et des batailles peuvent être suivis.
Rejoignez le support Discord et visitez le canal #java-support pour les questions, les contributions et les idées. N'hésitez pas à faire des demandes de traction avec des fonctionnalités manquantes / nouvelles, des correctifs, etc.
Préférez-vous d'autres langages de programmation?
Remarque: Ce n'est pas une API officielle. C'est un projet d'ingénierie inverse.
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 >Grade
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 ();
// Contrôle :
Message :
Débogage :
TikTokLive . newClient ( "host-name" )
. onReconnecting (( liveClient , event ) ->
{
})
. buildAndConnect ();Événement d'erreur générale. Vous devriez gérer cela.
TikTokLive . newClient ( "host-name" )
. onError (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché lorsque la connexion est établie avec succès.
TikTokLive . newClient ( "host-name" )
. onConnected (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché lorsque la connexion est déconnectée. Dans ce cas, vous pouvez à nouveau appeler Connect () pour avoir une logique de reconnexion. Notez que vous devez attendre un peu avant de tenter une reconnexion pour éviter d'être limité par taux.
TikTokLive . newClient ( "host-name" )
. onDisconnected (( liveClient , event ) ->
{
})
. buildAndConnect ();Classe de base pour tous les événements
TikTokLive . newClient ( "host-name" )
. onEvent (( liveClient , event ) ->
{
})
. buildAndConnect ();Classe de base pour tous les événements
TikTokLive . newClient ( "host-name" )
. onEvent (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché chaque fois qu'un nouveau commentaire de chat arrive.
TikTokLive . newClient ( "host-name" )
. onComment (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché lorsque Liveroominfo a été mis à jour tel que les likes, les téléspectateurs, le classement ....
TikTokLive . newClient ( "host-name" )
. onRoomInfo (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché lorsque l'utilisateur envoie des cadeaux sans combo (la plupart des cadeaux coûteux) ou si combo a terminé
TikTokLive . newClient ( "host-name" )
. onGift (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenche lorsqu'un utilisateur crée un abonnement.
TikTokLive . newClient ( "host-name" )
. onSubscribe (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenche lorsqu'un utilisateur suit le streamer. Basé sur l'événement social.
TikTokLive . newClient ( "host-name" )
. onFollow (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché à chaque fois que le cadeau est envoyé
@see giftsendType Il a 3 états
Exemple lorsque l'utilisateur envoie un cadeau avec combo
> Combo: 1 -> combostate = giftsendType.begin
Combo: 4 -> combostate = giftsendType.active
Combo: 8 -> combostate = giftsendType.active
Combo: 12 -> combostate = giftSendType.Finished
N'oubliez pas que le Combostate est terminé à la fois TiktokgiftcomboEvent et l'événement tiktokgiftevent se déclenche
TikTokLive . newClient ( "host-name" )
. onGiftCombo (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché lorsque le flux en direct est terminé par l'hôte. Déclenchera également l'événement tiktokdisconnectedEvent.
TikTokLive . newClient ( "host-name" )
. onLiveEnded (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché chaque fois que quelqu'un pose une nouvelle question via la fonction de question.
TikTokLive . newClient ( "host-name" )
. onQuestion (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenche lorsqu'un utilisateur partage le flux. Basé sur l'événement social.
TikTokLive . newClient ( "host-name" )
. onShare (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onLiveUnpaused (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché chaque fois qu'un abonné envoie un émote (autocollant).
TikTokLive . newClient ( "host-name" )
. onEmote (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onJoin (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché lorsqu'un spectateur envoie des likes au streamer. Pour les flux avec de nombreux téléspectateurs, cet événement n'est pas toujours déclenché par 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 ();Déclenché à chaque fois qu'un message de webdiffusion codé par Protobuf arrive. Vous pouvez désérialiser l'objet binaire en fonction du cas d'utilisation.
TikTokLive . newClient ( "host-name" )
. onWebsocketUnhandledMessage (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onHttpResponse (( liveClient , event ) ->
{
})
. buildAndConnect ();Déclenché chaque fois que Tiktok envoie des données. Données entrantes en tant que message Protobuf. Vous pouvez désérialiser l'objet binaire en fonction du cas d'utilisation.
TikTokLive . newClient ( "host-name" )
. onWebsocketMessage (( liveClient , event ) ->
{
})
. buildAndConnect ();Liste des extensions (addons) à tiktoklivejava qui gagnera votre temps
/**
*
* 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 ());
}
}
// Documentation de la bibliothèque pour les contributeurs
Vos améliorations sont les bienvenues! N'hésitez pas à ouvrir une demande de problème ou de traction.