|
用 chatgpt 帮我糊了一个 tg 监控 ovh 补货的通知。
1. 在 Telegram 上找到 BotFather。
2. 创建一个新机器人并记录下给定的 Token。
3. 获取你的 Telegram 用户 ID,你可以通过向你的机器人发送消息并调用 https://api.telegram.org/bot/getUpdates API 来查看你的消息和用户 ID。
在 deno.land 创建一个 playground,填入以下代码,修改部分变量直接运行就行了。
[ol]// bot.ts// 1. 配置 Telegram bot 和 APIconst TELEGRAM_TOKEN = ""; // 填入你的 Telegram Bot Tokenconst CHAT_ID = "Chat-id"; // 填入你要发送消息的 Chat IDconst API_URL = "https://www.ovh.com/engine/apiv6/dedicated/server/datacenter/availabilities/?excludeDatacenters=true&planCode=25skleb01&server=25skleb01"; // 填入你要请求的 API 地址// 2. 发送 Telegram 消息的函数async function sendTelegramMessage(message: string) { const url = `https://api.telegram.org/bot${TELEGRAM_TOKEN}/sendMessage`; const body = JSON.stringify({ chat_id: CHAT_ID, text: message, }); const res = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json", }, body: body, }); if (res.ok) { console.log("Message sent to Telegram successfully."); } else { console.error("Failed to send message to Telegram."); }}// 3. 请求 API 并检查响应是否包含 'available' 字段async function checkApiAndNotify() { try { const response = await fetch(API_URL); const data = await response.json(); const nvme = data.find(item => item.storage === 'softraid-2x450nvme'); if (nvme.datacenters.some(item => item.availability !== 'unavailable')) { const message = `The KS-LE-B Nvme is restored. Check it out here: [Click here](https://eco.ovhcloud.com/en-ie/kimsufi/ks-le-b/)` sendTelegramMessage(message); } else { console.log("Service is not available."); } } catch (error) { console.error("Error while fetching API or sending message:", error); }}// 4. 设置定时任务,周期性请求 APIsetInterval(checkApiAndNotify, 60 * 1000); // 每分钟检查一次Deno.serve((req: Request) => new Response("Hello Ovh"));[/ol]复制代码 |
|