بالنسبة للمطورين، يعرض 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
، وسيتم استخدامه لتأمين مصادقة Twitch من هجمات CSRF.
قم بتكوين عنوان URI لإعادة التوجيه لتطبيق twitch إلى:
http://localhost:8080/oauth
(التكيف مع المنفذ والمجال المناسبين في حالة النشر عبر الإنترنت)
قم بتعيين نفس القيمة لخاصية redirect_uri
لملف credentials.json
.
يمكنك أيضًا إنشاء تطبيق Spotify وملء spotify_client_id
و spotify_client_secret
افتراضيًا، يستمع الخادم على المنفذ 3018، ويمكنك تغييره على credentials.json
و src_front/utils/Config.ts
.
تم ترميز هذا المشروع باستخدام VSCode.
يوصى بتثبيت هذه المكونات الإضافية:
البرنامج المساعد فيو: 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
المحلي بداخله.
قم أيضًا بإضافة مجلد credentials
داخل data
الأقدم في جذر المشروع.
قم بإنشاء ملف env.conf
، ما عليك سوى كتابة prod
بداخله، ثم دفعه إلى جذر المشروع.
قم بتثبيت كافة تبعيات الإنتاج وتشغيل الخادم.
هنا هو هيكل الملف المتوقع:
─ الجذر
├─ العقدة_modules/
├─ عامة/
├─ المرافق /
├─ البيانات/
├─ بيانات الاعتماد /
├─ وحدات التحكم /
├─ bootstrap.js
├─ env.conf
ما عليك سوى إنشاء مجلد جديد ضمن المجلد i18n
برمز ISO 639-1 للغة.
اقرأ القسم التالي لمعرفة كيفية ترجمة التسميات
ولجعل الترجمة سهلة قدر الإمكان، تم إنشاء واجهة مخصصة تسرد جميع الفئات والتسميات المتاحة مع إمكانية تعديلها.
يؤدي أي تحديث على هذه الواجهة إلى إعادة إنشاء الملف المترجم بالإضافة إلى تحديث أي صفحة Twitchat مفتوحة على نفس المتصفح.
الواجهة متاحة فقط للمسؤولين ويمكن العثور عليها هنا:
المضيف المحلي: 8080/التسميات
للحصول على حقوق المسؤول، يجب عليك تعيين معرف مستخدم twitch الخاص بك ضمن مصفوفة admin_ids
في ملف credentials.json
.
إذا كنت بحاجة إلى إضافة تصنيفات جديدة، فسيتعين عليك تعديل مصادر 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
.