Untuk pengembang, Twitchat memaparkan API untuk menerima peristiwa dan mengontrol beberapa fitur dari jarak jauh.
Baca dokumentasinya.
/search
/announce message
Buat file data/credentials/credentials.json
dan atur konten berikut setelah mengisi nilai:
{
"server_port" : 3018 ,
"admin_ids" : [ " YOUR_TWITCH_USER_ID " ],
"csrf_key" : " " ,
"twitch_client_id" : " " ,
"twitch_client_secret" : " " ,
"twitch_redirect_uri" : " http://localhost:8080/oauth " ,
"twitch_scopes" : [
" chat:read+user:read:chat " ,
" chat:edit+user:write:chat " ,
" moderator:manage:announcements " ,
" moderator:manage:chat_messages " ,
" moderator:manage:shoutouts " ,
" whispers:read " ,
" user:manage:whispers " ,
" moderator:read:chatters " ,
" channel:read:redemptions " ,
" channel:manage:redemptions " ,
" channel:manage:polls " ,
" channel:manage:predictions " ,
" moderator:manage:chat_settings " ,
" channel:moderate " ,
" channel:manage:moderators " ,
" channel:manage:vips " ,
" channel:manage:raids " ,
" channel:manage:broadcast " ,
" channel:read:hype_train " ,
" channel:edit:commercial " ,
" channel:read:subscriptions " ,
" user:read:emotes " ,
" user:read:follows " ,
" moderator:read:followers " ,
" user:read:moderated_channels " ,
" user:read:blocked_users " ,
" user:manage:blocked_users " ,
" user:edit:broadcast " ,
" moderator:manage:banned_users " ,
" moderator:manage:automod " ,
" moderator:manage:shield_mode " ,
" moderator:manage:unban_requests " ,
" clips:edit " ,
" channel:read:ads " ,
" channel:manage:ads " ,
" moderator:manage:blocked_terms " ,
" moderator:manage:warnings " ,
" moderator:read:moderators " ,
" moderator:read:vips " ,
" moderator:read:suspicious_users " ,
" bits:read "
],
"spotify_client_id" : " " ,
"spotify_client_secret" : " " ,
"spotify_scopes" : " user-read-currently-playing user-modify-playback-state playlist-read-private playlist-modify-public playlist-modify-private " ,
"spotify_redirect_uri" : " http://localhost:8080/spotify/auth " ,
"patreon_client_id" : " " ,
"patreon_client_secret" : " " ,
"patreon_scopes" : " identity campaigns campaigns.members w:campaigns.webhook " ,
"patreon_redirect_uri" : " http://localhost:8080/patreon/auth " ,
"patreon_client_id_server" : " " ,
"patreon_client_secret_server" : " " ,
"patreon_redirect_uri_server" : " http://localhost:3018/api/patreon/serverauth " ,
"patreon_webhook_secret" : " " ,
"patreon_cipherKey" : " " , //64 chars
"tenor_secret" : " " ,
"youtube_key" : " path/to/key.json " ,
"youtube_scopes" : [ " https://www.googleapis.com/auth/youtube.readonly " , " https://www.googleapis.com/auth/youtube.force-ssl " ],
"google_key" : " path/to/key.json " ,
"paypal_client_id" : " " ,
"paypal_client_secret" : " " ,
"donors_remote_api_secret" : " " ,
"contact_mail" : " " ,
"discord_client_id" : " " ,
"discord_public_key" : " " ,
"discord_bot_token" : " " ,
"streamlabs_client_id" : " " ,
"streamlabs_client_secret" : " " ,
"streamlabs_redirect_uri" : " " ,
"streamelements_client_id" : " " ,
"streamelements_client_secret" : " " ,
"tipeee_client_id" : " " ,
"tipeee_client_secret" : " " ,
"tipeee_redirect_uri" : " http://localhost:8080/tipeee/auth " ,
"tiltify_client_id" : " " ,
"tiltify_client_secret" : " " ,
"tiltify_webhook_verify" : " " ,
"tiltify_webhook_id" : " " ,
"tiltify_redirect_uri" : " http://localhost:8080/tiltify/auth " ,
"tiltify_scopes" : " public webhooks:write " ,
"tiltify_api_path" : " https://v5api.tiltify.com "
}
Buat aplikasi twitch dan isi value client_id
dan client_secret
.
Tulis apapun yang Anda inginkan di kolom csrf_key
, itu akan digunakan untuk mengamankan otentikasi twitch dari serangan CSRF.
Konfigurasikan URI pengalihan aplikasi twitch ke:
http://localhost:8080/oauth
(sesuaikan dengan port dan domain yang sesuai jika diterapkan secara online)
Tetapkan nilai yang sama ke properti redirect_uri
dari file credentials.json
.
Anda juga dapat membuat aplikasi spotify dan mengisi spotify spotify_client_id
dan spotify_client_secret
Secara default server mendengarkan pada port 3018, Anda dapat mengubahnya pada credentials.json
dan src_front/utils/Config.ts
.
Proyek ini telah diberi kode dengan VSCode.
Disarankan untuk menginstal plugin ini:
Plugin Vue: https://marketplace.visualstudio.com/items?itemName=Vue.volar
Plugin I18n-ally: https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally
npm install
npm run dev
npm run build
node server/boostrap.js
Semua hal berikut HARUS dilakukan pada folder terpisah dari proyek GIT.
Kompilasi proyek dan dorong konten folder server
ke root server Anda.
Di samping file ini, buat folder public
dan masukkan konten folder dist
lokal Anda ke dalamnya.
Tambahkan juga folder credentials
di dalam data
yang lebih lama di root proyek.
Buat file env.conf
, cukup tulis prod
di dalamnya, dan dorong ke root proyek.
Instal semua dependensi produksi dan jalankan server.
Berikut adalah struktur file yang diharapkan:
─ akar
├─ simpul_modul/
├─ publik/
├─ utilitas/
├─ data/
├─ kredensial/
├─ pengontrol/
├─ bootstrap.js
├─ env.conf
Buat saja folder baru di bawah folder i18n
dengan kode bahasa ISO 639-1.
Baca bagian selanjutnya untuk mengetahui cara menerjemahkan label
Untuk membuat pelokalan semudah mungkin, antarmuka khusus telah dibuat yang mencantumkan semua kategori dan label yang tersedia dengan kemungkinan untuk mengeditnya.
Setiap pembaruan pada antarmuka ini memicu pembangunan kembali file yang dikompilasi serta pembaruan pada halaman Twitchat mana pun yang dibuka di browser yang sama.
Antarmuka hanya dapat diakses oleh administrator dan dapat ditemukan di sini:
localhost:8080/label
Untuk mendapatkan hak admin, Anda harus mengatur ID pengguna kedutan Anda di bawah array admin_ids
di file credentials.json
.
Jika Anda perlu menambahkan label baru, Anda harus mengedit sumber JSON.
Semua file label dapat ditemukan di bawah folder i18n
.
Mereka dibagi berdasarkan bahasa, lalu berdasarkan bagian.
Struktur file atau folder baru apa pun dapat ditambahkan ke dalamnya.
Ini semua digabungkan menjadi static/labels.json
selama proses pembuatan.
File dapat memiliki nama apa pun tetapi semua label di dalamnya harus berada di bawah satu properti yang akan menjadi jalur dasar untuk menggunakan label tersebut. Nama properti biasanya sama dengan nama file.
Contoh:
─ en
├─ global.json
├─ home.json/
├─ triggers.json/
contoh global.json
:
{
"global" :{
"hello" : " World "
}
}
contoh home.json
:
{
"home" :{
"lorem" : " ipsum dolor sit amet "
}
}
Ini akan menampilkan file JSON ini:
{
"en" :{
"global" :{
"hello" : " World "
},
"hello" :{
"lorem" : " ipsum dolor sit amet "
}
}
}
Jalankan perintah berikut:
npm run streamdeck_package
Plugin yang dikompilasi akan ada di streamdeck_plugin/fr. Twitchat .streamDeckPlugin
.