agentleFS
vSkyfallvSkyfall/sky/skills/sky-bots/SKILL.md

sky-bots

Skill8 starsChanged 6 days agoMITView on GitHub

Sohbet botları ve entegrasyonlar: Telegram (grammY), Discord (discord.js — slash komutlar, butonlar, modallar), Slack (Bolt — komutlar, etkileşimli mesajlar), WhatsApp Business Cloud API (resmi, şablon mesajlar), webhook vs polling, komut tasarımı ve konuşma akışları, oturum/ durum saklama, imza doğrulama, rate limit, barındırma (sunucusuz/konteyner), AI destekli bot ve kötüye kullanım önleme. "Telegram botu", "Discord botu", "Slack uygulaması", "WhatsApp botu" dendiğinde kullan.

  • Reads credentials

The file

Files
SKILL.md

Sky · Botlar

Platform ve kütüphane

PlatformKütüphaneNot
TelegramgrammY (TS), python-telegram-boten kolayı; BotFather'dan token, inline klavyeler, ödemeler
Discorddiscord.js, discord.pyslash komutları, butonlar, select menüler, modallar, roller
SlackBolt (JS/Python)slash komut, Block Kit etkileşimli mesajlar, App Home
WhatsAppMeta WhatsApp Cloud API (resmi) veya BSPonaylı şablonlar, 24 saatlik oturum penceresi
Resmi olmayan WhatsApp kütüphaneleri (WhatsApp Web otomasyonu) hizmet şartlarını ihlal eder ve numara kapatılabilir — iş için resmi API kullan.

Telegram (grammY)

import { Bot, InlineKeyboard, session } from "grammy";
const bot = new Bot(process.env.TELEGRAM_TOKEN!);
bot.use(session({ initial: () => ({ step: "idle" as "idle" | "awaiting_date" }) }));

bot.command("start", (ctx) => ctx.reply("Merhaba! Randevu almak için /randevu yaz."));
bot.command("randevu", async (ctx) => {
  const kb = new InlineKeyboard().text("Bugün", "day:0").text("Yarın", "day:1");
  await ctx.reply("Hangi gün?", { reply_markup: kb });
});
bot.callbackQuery(/^day:(\d)$/, async (ctx) => {
  const slots = await getSlots(Number(ctx.match[1]));
  await ctx.answerCallbackQuery();
  await ctx.editMessageText("Uygun saatler:", { reply_markup: slotsKeyboard(slots) });
});
bot.catch((err) => log.error({ err }, "bot hatası"));

Üretimde webhook (webhookCallback(bot, "hono") ile route handler); geliştirmede long polling (bot.start()). Webhook'ta secret_token başlığını doğrula.

Discord (discord.js)

  • Slash komutlarını kaydet (REST + Routes.applicationGuildCommands geliştirmede, global üretimde).
  • interactionCreate → isChatInputCommand() / isButton(); 3 sn içinde yanıt ver veya deferReply() (uzun işler).
  • En az yetki: gerekli intent'ler (MessageContent ayrıcalıklı intent'tir — gerçekten gerekmedikçe isteme), bot rol izinleri.
  • Sunucusuz mümkün: HTTP interactions uç noktası (Ed25519 imza doğrulamalı) — gateway bağlantısı gerektirmeyen botlar için.

Slack (Bolt)

Slash komut + Block Kit (butonlar, seçiciler, modal formlar), App Home sekmesi, olay abonelikleri; istek imzası (X-Slack-Signature) doğrulaması Bolt'ta yerleşik; 3 sn kuralı (ack() hemen, iş sonra). Kurulum: OAuth ile çalışma alanına yükleme, token'ları çalışma alanı başına sakla.

WhatsApp Cloud API

  • Webhook: doğrulama (hub.verify_token) + X-Hub-Signature-256 imza kontrolü.
  • Kullanıcı 24 saat içinde yazdıysa serbest mesaj; değilse onaylı şablon (randevu hatırlatma, sipariş durumu) — şablonlar Meta onayından geçer.
  • Etkileşimli mesajlar: butonlar (en fazla 3), listeler; Flows ile form benzeri akışlar.
  • Rıza: kullanıcının açık onayı; ticari iletilerde İYS kuralları (bkz. sky-tr-integrations, sky-notifications).

Konuşma tasarımı

  • Komut + buton ağırlıklı akış serbest metinden daha güvenilir; her adımda "İptal" ve "Geri".
  • Durum (hangi adımda) sunucuda (Redis/DB) — sunucusuzda bellek kaybolur.
  • Kısa mesajlar, emoji ölçülü, hata durumunda yönlendirici ("Bu tarihi anlayamadım, örn: 5 Kasım").
  • AI ile serbest dil anlama (bkz. sky-ai) — ama kritik eylemlerde (ödeme, iptal) buton onayı.

Güvenlik ve işletim

  • Token'lar env'de; sızarsa platformdan hemen yenile.
  • Tüm webhook isteklerinde imza doğrulama; yönetici komutları kullanıcı ID izin listesiyle.
  • Platform rate limitlerine uy (toplu mesajda kuyruk + gecikme, bkz. sky-jobs); spam yapma — botlar kapatılır.
  • Barındırma: webhook botları sunucusuz (Vercel/Workers) çalışır; Discord gateway botu sürekli süreç ister (Fly/Railway/VPS).
  • Log ve hata izleme (bkz. sky-observability); kişisel veriyi loglama.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.