Bu rehberde: Twitch kanalınızı bağlarsınız. Yayına başladığınızda ve yeni takipçi geldiğinde iş akışı anında başlar; örneğin "Canlıdayız!" duyurusunu X, Instagram ve Discord'a otomatik gönderirsiniz.
⏱ 5 dakika
Kimlik kartı
| Alan | Değer |
|---|---|
| Sağlayıcı anahtarı | TWITCH |
| Kategori | Sosyal medya / yayın |
| Kimlik doğrulama | İzin ekranı (Twitch OAuth 2) |
| Kapsam | Proje bazlı |
| Webhook | Evet – EventSub abonelikleri bağlarken otomatik oluşturulur (HMAC-SHA256 imzalı) |
| Kutu | Twitch (app.twitch) |
| Tetikleyici | Entegrasyon olayı → TWITCH · Stream went live, TWITCH · New follower |
Ne işe yarar?
Tetikleyiciler:
| Olay | Ne zaman | Akışın ilk alanları |
|---|---|---|
| Stream went live | Bağlı kanal yayına başladığında (stream.online) | streamId, broadcasterId, broadcasterLogin, broadcasterName, type, startedAt, url |
| New follower | Kanal yeni bir takipçi aldığında (channel.follow) | userId, userLogin, userName, followedAt, url (takipçinin kanalı), yayıncı alanları |
Twitch kutusu – Get stream: Kanalın şu an canlı olup olmadığını okur: live, title, gameName, viewerCount, startedAt, thumbnailUrl (1280×720), tags, url. Channel login boşsa bağlı kanal kullanılır. Yayın başlığı ve oyun bilgisi tetikleyicide gelmez – duyurudan önce bu kutuyu ekleyin.
Örnek: canlıya geçince her yerde duyur
Entegrasyon olayı TWITCH · Stream went live
→ Twitch · Get stream (başlık, oyun, küçük resim)
→ AI · Metin üret "{{ $json.title }} yayını başladı" duyurusu
→ Gönderi yayınla platform: X text: {{ $json.body }} {{ $json.url }}
→ Gönderi yayınla platform: INSTAGRAM mediaUrls: {{ [$json.thumbnailUrl] }}
→ Mesaj gönder kanal: DISCORD "🔴 Canlıdayız: {{ $json.url }}"
Instagram JPEG görsel ister; Twitch küçük resmi JPEG'dir. Yayın yeni başladığında küçük resim birkaç dakika boş görünebilir – gerekirse araya Bekle (2–3 dakika) koyun.
Ön koşullar
- Bir Twitch hesabı (yayıncı). Takipçi olayı için kanal sahibinin kendisi bağlanmalıdır (
moderator:read:followersizni). - Platform tarafında Twitch uygulaması (
TWITCH_CLIENT_ID,TWITCH_CLIENT_SECRET) ve https (443) üzerinden erişilebilen webhook adresi (PUBLIC_WEBHOOK_URL). Yerel geliştirmede EventSub aboneliği oluşturulamaz.
Adım adım kurulum
- Entegrasyonlar → Twitch → Bağla → Proje seçin.
- Twitch ile devam et → kanal hesabınızla giriş → Authorize.
- Bağlantı sonrası OrqLabs iki EventSub aboneliği oluşturur; Twitch adresi doğrular. Kartta hata görünmüyorsa abonelikler etkindir.
- Entegrasyon olayı tetikleyicisini ekleyin → hesap: Twitch bağlantınız → olay:
TWITCH · Stream went live→ Etkinleştir.
Platform yöneticisi: uygulama kaydı
- dev.twitch.tv/console → Register Your Application (hesapta iki adımlı doğrulama açık olmalı).
- OAuth Redirect URLs:
https://api.orqlabs.com/api/v1/integrations/oauth/twitch/callback; Category: Application Integration; Client Type: Confidential. - Client ID →
TWITCH_CLIENT_ID, New Secret →TWITCH_CLIENT_SECRET; API'yi yeniden başlatın. PUBLIC_WEBHOOK_URLgeçerli sertifikalı birhttps://adresi olmalı; Twitch olayları…/api/v1/webhooks/twitch/<entegrasyon-id>adresine gönderir.- EventSub abonelikleri uygulama erişim anahtarıyla (client credentials) oluşturulur; ek ayar gerekmez. İstenen kullanıcı kapsamları:
user:read:email,moderator:read:followers.
Her bildirim
Twitch-Eventsub-Message-Signaturebaşlığıyla imzalıdır (mesaj kimliği + zaman damgası + gövde, bağlantıya özel gizli anahtar). İmzası tutmayan veya 10 dakikadan eski bildirimler reddedilir; aynı bildirimin tekrarı yeni çalıştırma başlatmaz.
Sık karşılaşılan hatalar
| Hata | Olası neden | Çözüm |
|---|---|---|
| "Webhook kaydı başarısız: … https callback" | PUBLIC_WEBHOOK_URL https değil | Herkese açık https adresi tanımlayın, entegrasyonu yeniden bağlayın |
| "Webhook kaydı başarısız: … app access token failed" | TWITCH_CLIENT_SECRET yanlış | Konsolda yeni secret üretip ortam değişkenini güncelleyin |
| Takipçi olayı gelmiyor | Bağlanan hesap kanal sahibi değil veya izin eksik | Kanal hesabıyla Yeniden yetkilendir |
| Olaylar bir süre sonra kesildi | Twitch aboneliği iptal etti (izin geri alındı, yanıt verilemedi) | Yeniden yetkilendir – abonelikler yeniden oluşturulur |
AUTH – 401 | Erişim izni iptal edildi | Yeniden yetkilendir |