| export async function fetchTelegramChatId(params: { | |
| token: string; | |
| chatId: string; | |
| signal?: AbortSignal; | |
| }): Promise<string | null> { | |
| const url = `https://api.telegram.org/bot${params.token}/getChat?chat_id=${encodeURIComponent(params.chatId)}`; | |
| try { | |
| const res = await fetch(url, params.signal ? { signal: params.signal } : undefined); | |
| if (!res.ok) { | |
| return null; | |
| } | |
| const data = (await res.json().catch(() => null)) as { | |
| ok?: boolean; | |
| result?: { id?: number | string }; | |
| } | null; | |
| const id = data?.ok ? data?.result?.id : undefined; | |
| if (typeof id === "number" || typeof id === "string") { | |
| return String(id); | |
| } | |
| return null; | |
| } catch { | |
| return null; | |
| } | |
| } | |