openclaw/extensions/telegram/src/api-fetch.ts

25 lines
728 B
TypeScript

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;
}
}