import { Client } from "@xtsea/tgcore-ts"
// ❌ Don't do this.
// tgcore is not meant to hit api.telegram.org directly.
// Default endpoint is /v2/{method}, not /{method}.
// Also won’t work properly if your server IP is blocked by Telegram
// or you're not using a proxy / webhook.
const tg = new Client({
api_key: "api_key",
base_url: `https://api.telegram.org/${bot_token}` // wrong usage
})✅ Proper flow:
1. Register on Services Pro
2. Add your bot token once in the dashboard
3. Webhook is configured automatically
4. Your bot token never touches your frontend
5. All calls go through:
https://services-pro.ryzenths.dpdns.org/api/v2/{method}You can still use:
- Pyrogram (MTProto style)
- FastAPI (if you want full control, but heavier)
- Or plain bot API
But tgcore is built as a secure middleware layer, not a raw Telegram proxy.
# Not too many
async def something(**kwargs):
return await FollowAPIReadDocs(kwargs)
# Now you can like this
await something(
chat_id=chat_id,
text=text,
reply_markup={"inline_keyboard": []}
)
Abstraction beats methods.
If you use
Or JSON:
Because it's too much
Try to see if you can do it like this:
Clean, no need to say much more.
InlineKeyboardMarkup([])Or JSON:
reply_markup={"inline_keyboard": []}Because it's too much
Try to see if you can do it like this:
KeyboardBuilder().url("Custom Name", "https://google.com").build()Clean, no need to say much more.
TGCore TS Client • Production Ready
Docs: https://tgcore.ryzenths.dpdns.org/
Web: https://services-pro.ryzenths.dpdns.org
Install:
Usage:
• Service migrated to new URL
• Production stable
• No configuration issues
• Enterprise-ready
Docs: https://tgcore.ryzenths.dpdns.org/
Web: https://services-pro.ryzenths.dpdns.org
Install:
npm install @xtsea/tgcore-tsUsage:
import { Client } from "@xtsea/tgcore-ts"
const tg = new Client({
api_key: process.env.R_API_KEY,
base_url: "https://tgcore.ryzenths.dpdns.org"
})• Service migrated to new URL
• Production stable
• No configuration issues
• Enterprise-ready