개발자를 위해 Twitchat 이벤트를 수신하고 일부 기능을 원격으로 제어할 수 있는 API를 제공합니다 .
해당 문서를 읽어보세요.
/search
명령을 통해 모든 메시지 검색을 허용합니다. /announce message
기능 지원 data/credentials/credentials.json
파일을 생성하고 값을 채운 후 다음 내용을 설정합니다.
{
"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 "
}
twitch 애플리케이션을 생성하고 client_id
및 client_secret
값을 입력합니다.
csrf_key
필드에 원하는 것을 쓰면 CSRF 공격으로부터 트위치 인증을 보호하는 데 사용됩니다.
twitch 애플리케이션의 리디렉션 URI를 다음으로 구성합니다.
http://localhost:8080/oauth
(온라인으로 배포하는 경우 적절한 포트와 도메인으로 조정)
credentials.json
파일의 redirect_uri
속성에 동일한 값을 설정합니다.
Spotify 애플리케이션을 생성하고 Spotify spotify_client_id
및 spotify_client_secret
를 입력할 수도 있습니다.
기본적으로 서버는 포트 3018에서 수신 대기하며, credentials.json
및 src_front/utils/Config.ts
에서 이를 변경할 수 있습니다.
이 프로젝트는 VSCode로 코딩되었습니다.
다음 플러그인을 설치하는 것이 좋습니다:
Vue 플러그인: https://marketplace.visualstudio.com/items?itemName=Vue.volar
I18n-ally 플러그인: https://marketplace.visualstudio.com/items?itemName=lokalise.i18n-ally
npm install
npm run dev
npm run build
node server/boostrap.js
다음은 모두 GIT 프로젝트의 별도 폴더에서 수행되어야 합니다.
프로젝트를 컴파일하고 서버 루트에 server
폴더의 내용을 푸시합니다.
이 파일 옆에 public
폴더를 만들고 그 안에 로컬 dist
폴더의 내용을 푸시합니다.
또한 프로젝트 루트의 오래된 data
내에 credentials
폴더를 추가합니다.
env.conf
파일을 만들고, 안에 prod
작성하고 프로젝트 루트에 푸시하세요.
모든 프로덕션 종속성을 설치하고 서버를 실행합니다.
예상되는 파일 구조는 다음과 같습니다.
─ 루트
├─ node_modules/
├─ 공개/
├─ 유틸리티/
├─ 데이터/
├─ 자격 증명/
├─ 컨트롤러/
├─ bootstrap.js
├─ env.conf
i18n
폴더 아래에 해당 언어의 ISO 639-1 코드를 사용하여 새 폴더를 생성하기만 하면 됩니다.
라벨을 번역하는 방법을 알아보려면 다음 섹션을 읽어보세요.
현지화를 최대한 쉽게 만들기 위해 사용 가능한 모든 카테고리와 라벨을 편집할 수 있는 목록으로 제공하는 전용 인터페이스가 만들어졌습니다.
이 인터페이스에 대한 모든 업데이트는 컴파일된 파일의 재빌드뿐만 아니라 동일한 브라우저에서 열린 모든 Twitchat 페이지에 대한 업데이트를 트리거합니다.
인터페이스는 관리자만 액세스할 수 있으며 여기에서 찾을 수 있습니다.
로컬 호스트:8080/레이블
관리자 권한을 얻으려면 자격 credentials.json
파일의 admin_ids
배열 아래에 twitch 사용자 ID를 설정해야 합니다.
새 라벨을 추가해야 하는 경우 JSON 소스를 편집해야 합니다.
모든 레이블 파일은 i18n
폴더에서 찾을 수 있습니다.
언어별로 구분된 다음 섹션별로 구분되어 있습니다.
여기에는 새로운 파일이나 폴더 구조를 추가할 수 있습니다.
이는 모두 빌드 프로세스 중에 static/labels.json
에 병합됩니다.
파일의 이름은 무엇이든 가질 수 있지만 파일 내의 모든 레이블은 레이블을 사용하기 위한 기본 경로가 될 단일 속성 아래에 있어야 합니다. 속성 이름은 일반적으로 파일 이름과 동일합니다.
예:
─ en
├─ global.json
├─ home.json/
├─ triggers.json/
global.json
예:
{
"global" :{
"hello" : " World "
}
}
home.json
예:
{
"home" :{
"lorem" : " ipsum dolor sit amet "
}
}
그러면 다음 JSON 파일이 출력됩니다.
{
"en" :{
"global" :{
"hello" : " World "
},
"hello" :{
"lorem" : " ipsum dolor sit amet "
}
}
}
다음 명령을 실행하십시오.
npm run streamdeck_package
컴파일된 플러그인은 streamdeck_plugin/fr. Twitchat .streamDeckPlugin
.