Link Telegram or Discord channel membership
Upserts a row keyed by (user, platform, channelId). Telegram requires telegramUserId; Discord requires discordUserId (snowflake).
Authorizations
User JWT access token issued by POST /api/auth/verify or POST /api/auth/social/verify. Routes that accept both auth modes declare api-key and bearer-jwt security schemes.
Headers
HMAC-SHA256 signature: HMAC-SHA256(secretKey, timestamp + METHOD + path + body). Optional -- when omitted, HMAC verification is skipped.
Request timestamp in epoch milliseconds. Required when x-signature is provided. Rejected if drift exceeds 5 minutes.
Body
telegram, discord Telegram supergroup / channel id string (e.g. -100…).
"-1003750684798"
Your Telegram user id (numeric). In production, prefer verifying via Telegram Login Widget; this field is required for getChatMember checks.
Your Discord user id (snowflake string). Required for Discord membership checks.