@ycryptx/tiktok-live-connector
Version:
Node.js module to receive live stream chat events like comments and gifts from TikTok LIVE
79 lines • 4.68 kB
TypeScript
/**
* Wrapper class for TikTok's internal Webcast Push Service
*/
export class WebcastPushConnection extends EventEmitter {
/**
* Create a new WebcastPushConnection instance
* @param {string} uniqueId TikTok username (from URL)
* @param {object} [options] Connection options
* @param {boolean} [options[].processInitialData=true] Process the initital data which includes messages of the last minutes
* @param {boolean} [options[].fetchRoomInfoOnConnect=true] Fetch the room info (room status, streamer info, etc.) on connect (will be returned when calling connect())
* @param {boolean} [options[].enableExtendedGiftInfo=false] Enable this option to get extended information on 'gift' events like gift name and cost
* @param {boolean} [options[].enableWebsocketUpgrade=true] Use WebSocket instead of request polling if TikTok offers it
* @param {boolean} [options[].enableRequestPolling=true] Use request polling if no WebSocket upgrade is offered. If `false` an exception will be thrown if TikTok does not offer a WebSocket upgrade.
* @param {number} [options[].requestPollingIntervalMs=1000] Request polling interval if WebSocket is not used
* @param {string} [options[].sessionId=null] The session ID from the "sessionid" cookie is required if you want to send automated messages in the chat.
* @param {object} [options[].clientParams={}] Custom client params for Webcast API
* @param {object} [options[].requestHeaders={}] Custom request headers for axios
* @param {object} [options[].websocketHeaders={}] Custom request headers for websocket.client
* @param {object} [options[].requestOptions={}] Custom request options for axios. Here you can specify an `httpsAgent` to use a proxy and a `timeout` value for example.
* @param {object} [options[].websocketOptions={}] Custom request options for websocket.client. Here you can specify an `agent` to use a proxy and a `timeout` value for example.
*/
constructor(uniqueId: string, options?: {
processInitialData?: boolean;
fetchRoomInfoOnConnect?: boolean;
enableExtendedGiftInfo?: boolean;
enableWebsocketUpgrade?: boolean;
enableRequestPolling?: boolean;
requestPollingIntervalMs?: number;
sessionId?: string;
clientParams?: object;
requestHeaders?: object;
websocketHeaders?: object;
requestOptions?: object;
websocketOptions?: object;
});
/**
* Connects to the current live stream room
* @param {string} [roomId] If you want to connect to a specific roomId. Otherwise the current roomId will be retrieved.
* @returns {Promise} Promise that will be resolved when the connection is established.
*/
connect(roomId?: string): Promise<any>;
/**
* Disconnects the connection to the live stream
*/
disconnect(): void;
/**
* Get the current connection state including the cached room info and all available gifts (if `enableExtendedGiftInfo` option enabled)
* @returns {object} current state object
*/
getState(): object;
/**
* Get the current room info (including streamer info, room status and statistics)
* @returns {Promise} Promise that will be resolved when the room info has been retrieved from the API
*/
getRoomInfo(): Promise<any>;
/**
* Get a list of all available gifts including gift name, image url, diamont cost and a lot of other information
* @returns {Promise} Promise that will be resolved when all available gifts has been retrieved from the API
*/
getAvailableGifts(): Promise<any>;
/**
* Sends a chat message into the current live room using the provided session cookie
* @param {string} text Message Content
* @param {string} [sessionId] The "sessionid" cookie value from your TikTok Website if not provided via the constructor options
* @returns {Promise} Promise that will be resolved when the chat message has been submitted to the API
*/
sendMessage(text: string, sessionId?: string): Promise<any>;
/**
* Decodes and processes a binary webcast data package that you have received via the `rawData` event (for debugging purposes only)
* @param {string} messageType
* @param {Buffer} messageBuffer
*/
decodeProtobufMessage(messageType: string, messageBuffer: Buffer): Promise<void>;
#private;
}
import EventEmitter = require("events");
export declare const signatureProvider: typeof import("./lib/tiktokSignatureProvider");
export declare const webcastProtobuf: typeof import("./lib/webcastProtobuf.js");
//# sourceMappingURL=index.d.ts.map