❤️❤️? Terhubung ke Tiktok Langsung dalam 3 baris ? ❤️❤️
Perpustakaan Java yang terinspirasi oleh Tiktoklive dan Tiktoklivesharp. Gunakan untuk menerima acara streaming langsung seperti komentar dan hadiah secara realtime dari Tiktok Live dengan menghubungkan ke layanan push webcast internal Tiktok. Perpustakaan menyertakan pembungkus yang terhubung ke layanan webcast menggunakan hanya nama pengguna ( uniqueId ). Ini memungkinkan Anda untuk terhubung ke obrolan langsung Anda sendiri serta obrolan langsung dari pita lainnya. Tidak ada kredensial yang diperlukan. Acara seperti anggota yang bergabung, hadiah, langganan, pemirsa, mengikuti, berbagi, pertanyaan, suka dan pertempuran dapat dilacak.
Bergabunglah dengan Dukungan Perselisihan dan kunjungi saluran #java-support untuk pertanyaan, kontribusi, dan ide. Jangan ragu untuk membuat permintaan tarik dengan fitur yang hilang/baru, perbaikan, dll
Apakah Anda lebih suka bahasa pemrograman lainnya?
Catatan: Ini bukan API resmi. Ini adalah proyek rekayasa terbalik.
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 >Lulusan
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 ();
// Kontrol :
Pesan :
Debug :
TikTokLive . newClient ( "host-name" )
. onReconnecting (( liveClient , event ) ->
{
})
. buildAndConnect ();Acara Kesalahan Umum. Anda harus menangani ini.
TikTokLive . newClient ( "host-name" )
. onError (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu ketika koneksi berhasil dibuat.
TikTokLive . newClient ( "host-name" )
. onConnected (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu saat koneksi terputus. Dalam hal ini Anda dapat menghubungi Connect () lagi untuk memiliki logika Hubungkan kembali. Perhatikan bahwa Anda harus menunggu sedikit sebelum mencoba menghubungkan kembali agar tidak terbatas pada tingkat.
TikTokLive . newClient ( "host-name" )
. onDisconnected (( liveClient , event ) ->
{
})
. buildAndConnect ();Kelas dasar untuk semua acara
TikTokLive . newClient ( "host-name" )
. onEvent (( liveClient , event ) ->
{
})
. buildAndConnect ();Kelas dasar untuk semua acara
TikTokLive . newClient ( "host-name" )
. onEvent (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu setiap kali komentar obrolan baru tiba.
TikTokLive . newClient ( "host-name" )
. onComment (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu ketika liveroominfo diperbarui seperti suka, pemirsa, peringkat ....
TikTokLive . newClient ( "host-name" )
. onRoomInfo (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu saat pengguna mengirim hadiah yang tidak memiliki kombo (sebagian besar hadiah mahal) atau jika kombo telah selesai
TikTokLive . newClient ( "host-name" )
. onGift (( liveClient , event ) ->
{
})
. buildAndConnect ();Memicu saat pengguna membuat langganan.
TikTokLive . newClient ( "host-name" )
. onSubscribe (( liveClient , event ) ->
{
})
. buildAndConnect ();Memicu saat pengguna mengikuti streamer. Berdasarkan acara sosial.
TikTokLive . newClient ( "host-name" )
. onFollow (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu setiap kali hadiah dikirim
@see giftsendType memiliki 3 negara bagian
Contoh Saat Pengguna Mengirim Hadiah Dengan Combo
> Combo: 1 -> Combostate = GiftSendType.begin
Combo: 4 -> Combostate = GiftSendType.Active
Combo: 8 -> Combostate = GiftSendType.Active
Combo: 12 -> Combostate = GiftSendType.Finished
Ingat jika kombostat selesai baik acara TiktokgiftComboEvent dan TiktokgiftEvent akan dipicu
TikTokLive . newClient ( "host-name" )
. onGiftCombo (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu saat streaming langsung diakhiri oleh tuan rumah. Juga akan memicu acara TiktokDisconnectedEvent.
TikTokLive . newClient ( "host-name" )
. onLiveEnded (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu setiap kali seseorang mengajukan pertanyaan baru melalui fitur pertanyaan.
TikTokLive . newClient ( "host-name" )
. onQuestion (( liveClient , event ) ->
{
})
. buildAndConnect ();Memicu saat pengguna membagikan aliran. Berdasarkan acara sosial.
TikTokLive . newClient ( "host-name" )
. onShare (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onLiveUnpaused (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu setiap kali pelanggan mengirimkan emote (stiker).
TikTokLive . newClient ( "host-name" )
. onEmote (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onJoin (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu ketika seorang penampil mengirim suka ke streamer. Untuk aliran dengan banyak pemirsa, acara ini tidak selalu dipicu oleh 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 ();Dipicu setiap kali pesan webcast yang dikodekan protobuf tiba. Anda dapat deserialisasi objek biner tergantung pada kasing penggunaan.
TikTokLive . newClient ( "host-name" )
. onWebsocketUnhandledMessage (( liveClient , event ) ->
{
})
. buildAndConnect (); TikTokLive . newClient ( "host-name" )
. onHttpResponse (( liveClient , event ) ->
{
})
. buildAndConnect ();Dipicu setiap kali Tiktok mengirimkan data. Data yang masuk sebagai pesan protobuf. Anda dapat deserialisasi objek biner tergantung pada kasing penggunaan.
TikTokLive . newClient ( "host-name" )
. onWebsocketMessage (( liveClient , event ) ->
{
})
. buildAndConnect ();Daftar Ekstensi (Addons) ke TiktokliveJava yang akan menghemat waktu Anda
/**
*
* 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 ());
}
}
// Dokumentasi Perpustakaan untuk Kontributor
Perbaikan Anda dipersilakan! Jangan ragu untuk membuka masalah atau menarik permintaan.