feat: implement token-complete telegram connect flow via bot button

This commit is contained in:
Ruslan Bakiev
2026-02-22 08:56:53 +07:00
parent d9148261a9
commit 8a14f002f8
3 changed files with 141 additions and 3 deletions

View File

@@ -29,13 +29,25 @@ function crmConnectUrl() {
return String(process.env.CRM_APP_URL || "https://clientsflow.dsrptlab.com").trim();
}
function crmConnectButton() {
function crmConnectButton(linkToken?: string) {
const base = crmConnectUrl();
let target = base;
if (linkToken) {
try {
const u = new URL(base);
u.searchParams.set("tg_link_token", linkToken);
target = u.toString();
} catch {
target = `${base}${base.includes("?") ? "&" : "?"}tg_link_token=${encodeURIComponent(linkToken)}`;
}
}
return {
inline_keyboard: [
[
{
text: "Открыть CRM и подтвердить",
url: crmConnectUrl(),
url: target,
},
],
],
@@ -105,7 +117,7 @@ export default defineEventHandler(async (event) => {
void telegramBotApi("sendMessage", {
chat_id: chatId,
text: "CRM: связка аккаунта получена. Нажми кнопку ниже и вернись в CRM для подтверждения.",
reply_markup: crmConnectButton(),
reply_markup: crmConnectButton(linkToken),
}).catch(() => {});
}