Slack API Nedir? Ne İşe Yarar?
Slack API, Slack platformuyla programlı bir şekilde etkileşim kurmanızı sağlar. Başlıca kullanım senaryoları: ✔ Anlık bildirimler (form gönderimi, hata raporları) ✔ Bot entegrasyonları (otomatik yanıtlar, kanal yönetimi) ✔ Veri senkronizasyonu (CRM, proje yönetimi araçlarıyla entegrasyon)
Slack Webhook ile Basit Bildirim Sistemi
Webhook, Slack’e HTTP POST isteğiyle mesaj göndermenin en kolay yoludur.
Adım 1: Slack’te Gelen Webhook Oluşturma
-
Slack API sayfasına gidin.
-
"Create an app" > "From scratch" seçeneğini seçin.
-
"Incoming Webhooks" özelliğini aktif edin.
-
"Add New Webhook to Workspace" butonuna tıklayarak bir kanal seçin.
-
Webhook URL’nizi kopyalayın.
const axios = require('axios'); const SLACK_WEBHOOK_URL = "YOUR_WEBHOOK_URL"; async function sendSlackNotification(message) { try { await axios.post(SLACK_WEBHOOK_URL, { text: message, }); console.log("Slack bildirimi gönderildi!"); } catch (error) { console.error("Slack'e mesaj gönderilemedi:", error.message); } } // Kullanım örneği sendSlackNotification("Merhaba! Sitenizden yeni bir form gönderildi 🚀");
Slack Bot Entegrasyonu (Daha Gelişmiş Kontrol)
Eğer sadece bildirim değil, interaktif mesajlar ve komut tabanlı yanıtlar istiyorsanız, bir Slack botu oluşturabilirsiniz.
Adım 1: Slack App & Bot Token Alma
-
Slack API üzerinden yeni bir uygulama oluşturun.
-
"Bot" bölümünden "Add a Bot User" seçeneğini ekleyin.
-
"OAuth & Permissions" kısmından Bot Token alın (
xoxb-
ile başlar).
Adım 2: Bot ile Mesaj Gönderme (Python Örneği)
Webhook ile Mesaj Gönderme (Node.js Örneği)
import requests SLACK_BOT_TOKEN = "xoxb-YOUR-BOT-TOKEN" CHANNEL_ID = "#general" def send_slack_message(text): url = "https://slack.com/api/chat.postMessage" headers = {"Authorization": f"Bearer {SLACK_BOT_TOKEN}"} payload = {"channel": CHANNEL_ID, "text": text} response = requests.post(url, headers=headers, json=payload) if response.json(): print("Mesaj gönderildi!") else: print("Hata:", response.json()) # Kullanım örneği send_slack_message("Bot üzerinden merhaba! 👋")
Gerçek Dünya Uygulamaları
📌 Senaryo 1: WordPress Form Gönderimlerini Slack’e Bildirme
// functions.php dosyasına ekleyin add_action('wpcf7_mail_sent', 'slack_form_notification'); function slack_form_notification($contact_form) { $submission = WPCF7_Submission::get_instance(); $data = $submission->get_posted_data(); $message = "Yeni form gönderimi:\n"; $message .= "Ad: " . $data . "\n"; $message .= "Email: " . $data . "\n"; $message .= "Mesaj: " . $data; wp_remote_post('SLACK_WEBHOOK_URL', array( 'body' => json_encode(array('text' => $message)) )); }
📌 Senaryo 2: Hata Raporlama Sistemi (Frontend JS)
// Hata yakalayıcı window.onerror = function(message, source, lineno, colno, error) { const errorData = { message: message, source: source, line: lineno, stack: error?.stack || "No stack trace" }; fetch("https://your-backend.com/log-error", { method: "POST", body: JSON.stringify(errorData) }).then(() => { console.log("Hata Slack'e iletildi!"); }); };Slack API'yi bir blog sitesinde birçok farklı amaç için kullanabilirsiniz. İşte en kullanışlı senaryolar: 1. Otomatik Bildirimler - Yeni blog yazısı yayınlandığında bildirim - Yorumlar için anlık bildirimler - İletişim formundan gelen mesajlar - Abone kayıtları bildirimi - Hata ve teknik problem bildirimleri 2. İstatistik ve Raporlama
def send_daily_stats(): stats = { "Günlük ziyaretçi": get_daily_visitors(), "Yeni yorumlar": get_new_comments(), "Popüler yazılar": get_popular_posts() } message = "📊 Günlük Blog İstatistikleri\n" for key, value in stats.items(): message += f"{key}: {value}\n" send_slack_message(WEBHOOK_URL, message)3. İçerik Yönetimi - Yazı taslakları için hatırlatmalar - İçerik takvimi takibi - SEO raporları - Backlink bildirimleri - İçerik güncelleme hatırlatmaları 4. Etkileşim Takibi
def monitor_engagement(): alerts = # Viral içerik tespiti if detect_viral_post(): alerts.append("🚀 Viral İçerik Tespit Edildi!") # Negatif yorum uyarısı if detect_negative_comments(): alerts.append("⚠️ Negatif Yorum Bildirimi") for alert in alerts: send_slack_message(WEBHOOK_URL, alert)5. Güvenlik Bildirimleri - Başarısız giriş denemeleri - Şüpheli IP adresleri - Spam yorum tespiti - Güvenlik güncellemeleri - Yedekleme durumu 6. Teknik Takip
def monitor_site_health(): checks = { "Uptime": check_uptime(), "Sayfa Yüklenme Hızı": check_page_speed(), "Database Durumu": check_database(), "SSL Sertifikası": check_ssl() } if any(status == "CRITICAL" for status in checks.values()): send_urgent_slack_alert(checks)7. Ekip İşbirliği - Yazı düzenleme istekleri - İçerik onay süreci - Görev atamaları - Toplantı hatırlatmaları - Proje takibi 8. Okuyucu Etkileşimi
def track_reader_engagement(): # Popüler yorumları takip et if new_popular_comment(): notify_comment_engagement() # Sosyal medya etkileşimlerini izle if viral_social_share(): notify_social_success()9. SEO ve Performans - Google Analytics raporları - Anahtar kelime performansı - Backlink kazanımları - Sıralama değişiklikleri - Core Web Vitals takibi 10. Otomatik İçerik Yönetimi
def content_automation(): # Otomatik sosyal medya paylaşımları schedule_social_shares() # İçerik güncelliği kontrolü check_content_freshness() # İlgili içerik önerileri update_related_posts()Örnek Webhook Entegrasyonu:
import requests from datetime import datetime def setup_blog_notifications(): WEBHOOK_URL = "your_webhook_url" def send_notification(message, severity="info"): payload = { "text": message, "username": "Blog Monitor", "icon_emoji": ":memo:", "attachments": } try: response = requests.post(WEBHOOK_URL, json=payload) return response.status_code == 200 except Exception as e: print(f"Bildirim gönderilemedi: {e}") return FalseBu entegrasyonları blog sitenize ekleyerek: - İş akışlarınızı otomatikleştirebilir - Önemli bildirimleri anında alabilir - Site performansını yakından takip edebilir - Ekip işbirliğini geliştirebilirsiniz Kaynaklar: 🔗 Slack API Dokümantasyonu 🔗 Slack API Kullanımı