لماذا Node.js؟
Node.js هي بيئة التشغيل الأكثر استخدامًا لتكاملات TikTok LIVE. SDK @tiktool/live الرسمي مكتوب بـ TypeScript ومنشور على npm ويتضمن تعريفات الأنواع كاملة جاهزة. ستحصل على:
- أمان الأنواع - تعريفات TypeScript كاملة لكل حدث ودالة
- إعادة اتصال تلقائية - يتعامل SDK مع انقطاع الاتصال تلقائيًا
- قائم على الأحداث - نمط
.on('event', handler)المألوف - يعمل في كل مكان - Node.js 18+ و Bun و Deno
ثبّت SDK
npm install @tiktool/liveأو باستخدام مديري حزم آخرين:
# Yarn
yarn add @tiktool/live
# pnpm
pnpm add @tiktool/live
# Bun
bun add @tiktool/liveبداية سريعة: 3 أسطر للبيانات المباشرة
أنشئ app.mjs والصق:
import { TikTokLive } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'tv_asahi_news', // TikTok username (without @)
apiKey: process.env.TIKTOOL_API_KEY
})
client.on('chat', (event) => {
console.log(`${event.nickname}: ${event.comment}`)
})
await client.connect()شغّله:
TIKTOOL_API_KEY=your_api_key node app.mjsسترى رسائل الدردشة تتدفق في الطرفية خلال ثوانٍ.
كل الأحداث المتاحة
يرسل SDK أحداثًا منظمة لكل تفاعل في البث:
import { TikTokLive } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'target_username',
apiKey: process.env.TIKTOOL_API_KEY
})
// Chat messages
client.on('chat', (event) => {
console.log(`[CHAT] ${event.nickname}: ${event.comment}`)
})
// Virtual gifts (Rose, Universe, etc.)
client.on('gift', (event) => {
console.log(`[GIFT] ${event.nickname} sent ${event.giftName} (${event.diamondCount} 💎)`)
})
// New followers
client.on('follow', (event) => {
console.log(`[FOLLOW] ${event.nickname} just followed!`)
})
// Likes
client.on('like', (event) => {
console.log(`[LIKE] ${event.nickname} liked (total: ${event.totalLikeCount})`)
})
// Viewer count changes
client.on('viewer_count', (event) => {
console.log(`[VIEWERS] ${event.viewerCount} watching`)
})
// Member joins (someone enters the stream)
client.on('member', (event) => {
console.log(`[JOIN] ${event.nickname} joined the stream`)
})
// Share events
client.on('share', (event) => {
console.log(`[SHARE] ${event.nickname} shared the stream`)
})
await client.connect()
console.log('✅ Connected and listening!')المخرجات المتوقعة
✅ Connected and listening!
[VIEWERS] 3,412 watching
[CHAT] viewer_1: Hello everyone! 👋
[FOLLOW] new_fan just followed!
[GIFT] whale_user sent Universe (34,000 💎)
[LIKE] cool_viewer liked (total: 12,847)
[CHAT] fan_123: Love this stream!
[JOIN] curious_viewer joined the stream
[SHARE] supporter_1 shared the streamدعم TypeScript
SDK مكتوب بـ TypeScript. الأنواع مضمّنة تلقائيًا، ولا حاجة لحزمة @types:
import { TikTokLive } from '@tiktool/live'
import type { ChatEvent, GiftEvent } from '@tiktool/live'
const client = new TikTokLive({
uniqueId: 'target_username',
apiKey: process.env.TIKTOOL_API_KEY
})
client.on('chat', (event: ChatEvent) => {
// event.comment, event.nickname, event.userId - all typed
console.log(event.nickname, event.comment)
})
client.on('gift', (event: GiftEvent) => {
// event.giftName, event.diamondCount, event.repeatCount - all typed
if (event.diamondCount >= 100) {
console.log(`Big gift from ${event.nickname}!`)
}
})
await client.connect()WebSocket مباشر (بدون SDK)
تفضّل استخدام WebSocket مباشرة؟ يعمل مع أي لغة أو إطار عمل:
import WebSocket from 'ws' // npm install ws
const ws = new WebSocket(
'wss://api.tik.tools?uniqueId=tv_asahi_news&apiKey=YOUR_API_KEY'
)
ws.on('message', (raw) => {
const msg = JSON.parse(raw.toString())
switch (msg.event) {
case 'chat':
console.log(`${msg.data.user.nickname}: ${msg.data.comment}`)
break
case 'gift':
console.log(`Gift: ${msg.data.giftName} (${msg.data.diamondCount} 💎)`)
break
case 'viewer_count':
console.log(`Viewers: ${msg.data.viewerCount}`)
break
}
})
ws.on('open', () => console.log('Connected!'))الأسئلة الشائعة
هل لدى TikTok واجهة Node.js API رسمية؟
لا. لا يوفر TikTok واجهة API عامة لبيانات بث LIVE. TikTools API خدمة مُدارة من طرف ثالث توفر وصولًا لحظيًا موثوقًا إلى الدردشة والهدايا والمشاهدين وأحداث LIVE الأخرى. حزمة npm @tiktool/live هي SDK الرسمي لهذه الواجهة.
هل هو مجاني؟
نعم. باقة Sandbox تمنحك 5,000 طلب يوميًا و 3 اتصالات WebSocket متزامنة - مجانًا، للتقييم فقط، بدون بطاقة ائتمان. سجّل من هنا.
هل يمكنني استخدامه مع Express أو Fastify أو Next.js؟
نعم. يعمل SDK في أي بيئة Node.js. استخدمه في معالجات مسارات Express، أو إضافات Fastify، أو مسارات Next.js API، أو سكربتات مستقلة.
هل يعمل مع Bun و Deno؟
نعم. SDK متوافق مع Bun و Deno. ثبّته عبر bun add @tiktool/live أو استورده من npm في Deno.