Para los desarrolladores, Twitchat expone una API para recibir eventos y controlar algunas funciones de forma remota.
Lea su documentación.
/search
/announce message
Cree un archivo data/credentials/credentials.json
y establezca el siguiente contenido después de completar los valores:
{
"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 "
}
Cree una aplicación de Twitch y complete los valores client_id
y client_secret
.
Escriba lo que desee en el campo csrf_key
, se utilizará para proteger la autenticación de Twitch contra ataques CSRF.
Configure el URI de redireccionamiento de la aplicación Twitch en:
http://localhost:8080/oauth
(adapte con el puerto y dominio adecuados si realiza la implementación en línea)
Establezca el mismo valor en la propiedad redirect_uri
del archivo credentials.json
.
También puedes crear una aplicación de Spotify y completar los campos spotify_client_id
y spotify_client_secret
De forma predeterminada, el servidor escucha en el puerto 3018, puede cambiarlo en credentials.json
y src_front/utils/Config.ts
.
Este proyecto ha sido codificado con VSCode.
Se recomienda instalar estos complementos:
Complemento de Vue: https://marketplace.visualstudio.com/items?itemName=Vue.volar
Complemento I18n-ally: https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally
npm install
npm run dev
npm run build
node server/boostrap.js
Todo lo siguiente DEBE realizarse en una carpeta separada del proyecto GIT.
Compile el proyecto y envíe el contenido de la carpeta server
a la raíz de su servidor.
Junto a este archivo, cree una carpeta public
e inserte el contenido de su carpeta dist
local dentro de ella.
También agregue la carpeta de credentials
dentro de un data
más antiguo en la raíz del proyecto.
Cree un archivo env.conf
, simplemente escriba prod
dentro y empújelo a la raíz del proyecto.
Instale todas las dependencias de producción y ejecute el servidor.
Aquí está la estructura de archivos esperada:
─ raíz
├─ módulos_nodo/
├─ público/
├─ utilidades/
├─ datos/
├─ credenciales/
├─ controladores/
├─ arranque.js
├─ entorno.conf
Simplemente cree una nueva carpeta en la carpeta i18n
con el código ISO 639-1 del idioma.
Lea la siguiente sección para saber cómo traducir etiquetas.
Para que la localización sea lo más sencilla posible, se ha creado una interfaz dedicada que enumera todas las categorías y etiquetas disponibles con la posibilidad de editarlas.
Cualquier actualización en esta interfaz desencadena una reconstrucción del archivo compilado, así como una actualización en cualquier página de Twitchat abierta en el mismo navegador.
La interfaz solo es accesible para administradores y se puede encontrar aquí:
localhost:8080/etiquetas
Para obtener derechos de administrador, debe configurar su ID de usuario de Twitch en la matriz admin_ids
en el archivo credentials.json
.
Si necesita agregar nuevas etiquetas, deberá editar las fuentes JSON.
Todos los archivos de etiquetas se pueden encontrar en la carpeta i18n
.
Están divididos por idioma y luego por secciones.
A esto se puede agregar cualquier nueva estructura de archivo o carpeta.
Todos estos se fusionan en static/labels.json
durante el proceso de compilación.
Los archivos pueden tener cualquier nombre, pero todas las etiquetas que contienen deben estar bajo una única propiedad que será la ruta base para usar la etiqueta. El nombre de la propiedad suele ser el mismo que el nombre del archivo.
Ejemplo:
─ en
├─ global.json
├─ home.json/
├─ triggers.json/
Ejemplo de global.json
:
{
"global" :{
"hello" : " World "
}
}
Ejemplo de home.json
:
{
"home" :{
"lorem" : " ipsum dolor sit amet "
}
}
Esto generará este archivo JSON:
{
"en" :{
"global" :{
"hello" : " World "
},
"hello" :{
"lorem" : " ipsum dolor sit amet "
}
}
}
Ejecute el siguiente comando:
npm run streamdeck_package
El complemento compilado estará allí streamdeck_plugin/fr. Twitchat .streamDeckPlugin
.