feat: implement token-complete telegram connect flow via bot button
This commit is contained in:
@@ -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(() => {});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user