Bu sayfada

Google Meet kayıtlarını otomatik ekleme ve öğrenciye bildirme

Bir otomasyon (Apps Script, Make, n8n) tamamlanmış bir Google Meet kaydını API token'ı ile Teachfluence'ın kayıt aktarımı uç noktasına gönderir; googleEventId veya meetLink + recordedAt ile doğru koçluk görüşmesi ya da canlı etkinlik bulunur, kayıt eklenir ve öğrenciye e-posta gider.

Google Meet'te yaptığınız koçluk görüşmelerinin ve canlı etkinliklerin (webinar, atölye) kayıtlarını öğrencilerinize ilgili sayfada gösterebilirsiniz. Bu sayfa kaydı otomatik eklemeyi anlatır: kurduğunuz tek bir otomasyon (Apps Script, Make ya da n8n gibi) bir Meet kaydı hazır olduğunda onu doğru görüşmeye ya da etkinliğe kendisi ekler ve öğrenciye kaydın hazır olduğunu bildirir. Otomasyonu içerik başına ayrı ayrı kurmanız gerekmez; kuruluş genelinde tek bir kural yeterlidir.

Nasıl çalışır

Otomasyonunuz kendi Google hesabınızdan (Takvim/Meet) tamamlanan kaydı ve onun Meet bağlantısını okur, kaydı Teachfluence'a gönderir. Teachfluence bu bağlantıdaki Meet koduyla doğru koçluk görüşmesini ya da canlı etkinliği bulur, kaydı ekler ve öğrenciye e-posta gönderir. Teachfluence arayüzünden içerik başına kimlik kopyalamanız gerekmez.

Ön koşul: Google Meet'te kaydı açma

Bu akış tamamlanmış Meet kayıtlarını işler; dolayısıyla önce Meet'te kaydın açık olması gerekir.

  • Yönetici kaydı açar. Workspace yöneticisi Admin Console'da Uygulamalar → Google Workspace → Google Meet → Meet video ayarları → Kayıt yolundan "Kullanıcıların toplantılarını kaydetmesine izin ver" seçeneğini açar.
  • Toplantıda kaydı başlatın. Ana bilgisayar (veya yardımcı sunucu), toplantı sırasında sağ alttaki Etkinlikler → Kayıt → Kaydı başlat ile kaydı başlatır.
  • Kayıt Drive'a düşer. Toplantı bitince kayıt, organizatörün Drive'ındaki Meet Recordings klasörüne kaydedilir; otomasyonunuz bu klasörü izler.

1. API token'ı oluşturun

Ayarlar → Entegrasyonlar → Geliştirici bölümüne gidin ve API Token'ları kartındaki Token oluştur düğmesine tıklayın.

Açılan pencerede token'a tanıyabileceğiniz bir Ad verin (örn. "n8n kayıt senkronizasyonu"). İsterseniz bir son kullanma tarihi belirleyin; sürekli çalışan bir otomasyon için boş bırakın. Kapsam otomatik olarak Kayıt aktarımı olur; şimdilik token'lar başka bir işe yaramaz.

Token oluştur'a tıkladığınızda token yalnızca bir kez gösterilir. Kopyalayıp otomasyon aracınızın güvenli alanına (kimlik bilgisi / secret) kaydedin.

2. Uç noktayı ve kod parçasını kopyalayın

Aynı sayfada, Uç noktalar bölümünün Organizasyon geneli kayıt aktarımı kartında uç nokta adresini bulursunuz. Örnek isteği göster'e tıklayınca hazır bir curl komutu ve bir n8n HTTP Request düğümü örneği açılır.

Uç nokta adresi:

https://api.teachfluence.com/api/recording-ingest

Karttaki hazır kod parçası, koçluğa özel googleEventId alanıyla gelir. Hem koçluk hem canlı etkinlikler için aşağıdaki 4. adımda gösterilen meetLink + recordedAt alanlarını kullanın.

3. Kaydı oynatılabilir bir bağlantıya dönüştürün

Otomasyonunuz kaydı göndermeden önce onu oynatılabilir bir bağlantıya çevirmelidir. İki hedefin kuralları farklıdır. Koçluk görüşmeleri yalnızca tanınan video sağlayıcılarının bağlantılarını kabul eder. Canlı etkinlikler herhangi bir https adresini kabul eder, ancak kabul edilen her adres öğrenciye oynatılmaz.

Bağlantı türüKoçluk görüşmesiCanlı etkinlik
Listelenmemiş veya herkese açık YouTube bağlantısıEvet (önerilen)Evet (önerilen)
Vimeo, Loom veya Wistia bağlantısıEvetEvet
Kendi sunucunuzdaki / CDN'inizdeki doğrudan video dosyası (.mp4)Hayır (422 ile reddedilir)Evet
Google Drive /view veya "paylaş" bağlantısıKabul edilir ama oynatılmaz ("Erişim iste")Kabul edilir ama oynatılmaz
Zoom kayıt sayfası bağlantısı (/rec/share/, /rec/play/)Hayır (reddedilir)Hayır (reddedilir)
Dropbox / OneDrive önizlemesi ya da girişe kapalı herhangi bir sayfaHayır (422 ile reddedilir)Kabul edilir ama oynatılmaz

Her iki hedefte de çalışan tek seçenek tanınan bir sağlayıcıdır; bu yüzden otomasyonunuzu listelenmemiş YouTube (ya da Vimeo) üzerine kurun.

4. Otomasyonu kurun

Otomasyonunuzda üç adım vardır: kaydın hazır olduğunu algılayan bir tetikleyici, kaydı oynatılabilir bağlantıya çeviren bir adım ve uç noktaya POST isteği gönderen bir adım.

Görüşmeyi veya etkinliği eşleştirmek için kaydın Meet bağlantısını (meetLink) ve başlangıç zamanını (recordedAt) gönderin. Bu ikisi hem koçluk hem canlı etkinlikler için çalışır. <YOUR_TOKEN> yerine token'ı yazın:

curl -X POST 'https://api.teachfluence.com/api/recording-ingest' \
  -H 'Authorization: Bearer <YOUR_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{"externalUrl":"https://youtu.be/AbCdEfGhIjK","meetLink":"https://meet.google.com/abc-defg-hij","recordedAt":"2026-07-24T10:02:00Z"}'

Eşleştirme alanları:

AlanNe işe yararKapsam
meetLink + recordedAtBağlantıdaki Meet koduyla eşler; aynı bağlantı tekrar kullanıldığında recordedAt (ISO-8601, saat dilimli) ile doğru olayı zamana göre ayırırKoçluk + canlı etkinlik
googleEventIdGoogle Takvim etkinlik kimliğiyle kesin eşleşme sağlarYalnızca koçluk

Kaydı bağlantı yerine kütüphanenizdeki bir videodan eklemek isterseniz externalUrl yerine videoId gönderin (externalUrl / videoId ikilisinden yalnızca birini gönderin).

Otomasyon aracını seçin

Bu akışı istediğiniz araçla kurabilirsiniz. Aşağıda önce ücretsiz seçenekler, en altta diğer araçlar yer alır.

Google Apps Script (önerilen, sıfır altyapı)

Kod doğrudan Google hesabınızda çalışır; Drive, Takvim ve Meet'e doğal erişimi olduğu için ayrı bir araç ya da sunucu gerekmez ve tamamen ücretsizdir.

  1. script.google.com adresine gidip Yeni proje oluşturun.
  2. Sol menüden Hizmetler'in (+) yanından iki gelişmiş hizmeti ekleyin: Google Calendar API ve YouTube Data API v3.
  3. Aşağıdaki betiğin tamamını yapıştırın; TOKEN ve FOLDER_ID değerlerini doldurun.
  4. Soldaki Tetikleyiciler (saat simgesi) bölümünden syncRecordings için zaman güdümlü bir tetikleyici ekleyin (örn. saatte bir).
  5. İlk çalıştırmada Google, Drive/Takvim/YouTube izinlerini ister; onaylayın.
const TOKEN = 'lerec_...'; // Ayarlar > Entegrasyonlar > Geliştirici
const ENDPOINT = 'https://api.teachfluence.com/api/recording-ingest';
const FOLDER_ID = 'DRIVE_KLASOR_ID'; // Meet Recordings klasörü

// Klasördeki yeni kayıtları tarar; her birini bir kez işler.
function syncRecordings() {
  const seen = PropertiesService.getScriptProperties();
  const files = DriveApp.getFolderById(FOLDER_ID).getFilesByType('video/mp4');
  while (files.hasNext()) {
    const file = files.next();
    if (seen.getProperty(file.getId())) continue; // daha önce gönderildi
    const ev = findMeetEventForFile(file); // { googleEventId, meetLink, recordedAt }
    if (!ev || !ev.meetLink) continue;     // eşleşen Meet etkinliği yok; sonraki tarama denesin
    const playableUrl = uploadToYouTubeUnlisted(file);
    const res = UrlFetchApp.fetch(ENDPOINT, {
      method: 'post',
      contentType: 'application/json',
      headers: { Authorization: 'Bearer ' + TOKEN },
      muteHttpExceptions: true,
      payload: JSON.stringify({
        googleEventId: ev.googleEventId, // koçlukta kesin eşleşme
        meetLink: ev.meetLink,           // canlı etkinlik + koçluk için
        recordedAt: ev.recordedAt,       // meetLink ile zorunlu
        externalUrl: playableUrl,
      }),
    });
    if (res.getResponseCode() < 300) {
      seen.setProperty(file.getId(), '1'); // yalnızca başarıda işaretle
    } else {
      console.log('Gönderim başarısız: ' + res.getResponseCode() + ' ' + res.getContentText());
    }
  }
}

// Drive'daki videoyu YouTube'a "unlisted" olarak yükler, izlenebilir bağlantıyı döndürür.
// (YouTube Data API v3 gelişmiş hizmeti gerekir.)
function uploadToYouTubeUnlisted(file) {
  const video = YouTube.Videos.insert(
    {
      snippet: { title: file.getName(), description: 'Teachfluence görüşme kaydı' },
      status: { privacyStatus: 'unlisted' },
    },
    'snippet,status',
    file.getBlob()
  );
  return 'https://youtu.be/' + video.id;
}

// Kaydın ait olduğu Meet etkinliğini bulur ve Meet bağlantısı + başlangıç zamanı +
// Takvim kimliğini döndürür. Kayıt, toplantı bittikten kısa süre sonra Drive'a düştüğü
// için, dosyanın oluşturulma zamanına en yakın BİTEN Meet etkinliğini eşler.
// (Google Calendar API gelişmiş hizmeti gerekir.)
function findMeetEventForFile(file) {
  const created = file.getDateCreated();
  const windowStart = new Date(created.getTime() - 6 * 60 * 60 * 1000); // 6 saat öncesi
  const res = Calendar.Events.list('primary', {
    timeMin: windowStart.toISOString(),
    timeMax: created.toISOString(),
    singleEvents: true,
    orderBy: 'startTime',
  });
  let best = null;
  (res.items || []).forEach(function (e) {
    const isMeet = e.hangoutLink || (e.conferenceData && e.conferenceData.conferenceId);
    if (!isMeet || !e.end || !e.end.dateTime) return;
    if (new Date(e.end.dateTime) > created) return; // henüz bitmemiş
    if (!best || new Date(e.end.dateTime) > new Date(best.end.dateTime)) best = e;
  });
  if (!best) return null;
  return {
    googleEventId: best.id,
    meetLink: best.hangoutLink,       // https://meet.google.com/abc-defg-hij
    recordedAt: best.start.dateTime,  // ISO-8601, saat dilimli
  };
}

Make (ücretsiz katman, düşük hacim)

Make'in ücretsiz katmanında ayda 1.000 işlem hakkı vardır ve HTTP ile Google modülleri dahildir.

  1. Yeni bir senaryo oluşturun.
  2. Google Drive → Watch Files modülü (Meet Recordings klasörü).
  3. Kaydı yeniden barındıran bir modül (ör. YouTube → Upload a Video, Unlisted).
  4. HTTP → Make a request modülü: POST, https://api.teachfluence.com/api/recording-ingest, Authorization: Bearer <YOUR_TOKEN> başlığı ve JSON gövde (meetLink + recordedAt + externalUrl).

n8n veya Zapier

Bu araçlarla da kurabilirsiniz; akış aynıdır (tetikleyici, yeniden barındırma, HTTP POST). n8n'de bir HTTP Request düğümü, Zapier'de Webhooks by Zapier kullanılır.

n8n HTTP Request düğümü alanları:

Method: POST
URL: https://api.teachfluence.com/api/recording-ingest
Authentication: Generic Credential Type -> Header Auth
  Header Name: Authorization
  Header Value: Bearer <YOUR_TOKEN>
Send Body: On (JSON)
Body:
{
  "externalUrl": "https://youtu.be/AbCdEfGhIjK",
  "meetLink": "https://meet.google.com/abc-defg-hij",
  "recordedAt": "2026-07-24T10:02:00Z"
}

5. Teachfluence ne yapar

Bir istek geldiğinde Teachfluence, gönderilen bilgiyi kendi kuruluşunuz içinde arar, doğru koçluk görüşmesini ya da canlı etkinliği bulur, kaydı ekler ve (o içeriğe ilk kez kayıt ekleniyorsa) öğrenciye kaydın hazır olduğunu bildiren bir e-posta gönderir.

Yanıt kodları

Uç nokta, "isteğiniz hatalı, tekrar denemeyin" ile "geçici bir aksaklık, tekrar deneyin" durumlarını ayırır. Otomasyonunuzu buna göre kurun:

KodAnlamıOtomasyon ne yapmalı
200Kayıt eklendiTamam
200 (skipped)İçerik bulundu ama eklenmedi (içerikte zaten bir kayıt var, otomatik yayınlama kapalı veya görüşme iptal)Tamam, tekrar denemeyin
403Token geçersiz, süresi dolmuş veya iptal edilmiş; ya da token'ı oluşturan üye yetkiyi kaybetmişToken'ı düzeltin veya yeniden oluşturun
404Bu bağlantıya/kimliğe uyan görüşme ya da etkinlik bulunamadıMeet bağlantısını ve zamanı kontrol edin
409 / 422Belirsiz eşleşme ya da geçersiz girdi (meetLink için zaman eksik, hem videoId hem externalUrl gönderildi, koçlukta desteklenmeyen bir sağlayıcının bağlantısı, bozuk gövde)İsteği düzeltin
429Çok fazla istek (hız sınırı)Bekleyip tekrar deneyin
500Geçici sunucu hatasıGüvenle tekrar denenebilir

Başarılı yanıt, gönderdiğiniz eşleştirme alanlarını geri yankılar:

{ "ok": true, "meetLink": "https://meet.google.com/abc-defg-hij" }

Alternatif: kaydı elle ekleme

Tek bir kayıt için otomasyona gerek yoktur; içeriğin Kayıt kartından elle ekleyebilirsiniz.

  • Koçluk görüşmesi: Ürünler → 1:1 Görüşmeler altından görüşmeyi açın, Seanslar sekmesinde tamamlanan rezervasyonun detayına gidin, Kayıt kartından ekleyin. (Kart yalnızca tamamlanmış görüşmelerde görünür.)
  • Canlı etkinlik: Ürünler → Canlı Etkinlikler altından etkinliği açın, Ayarlar sekmesinde Genel görünümündeki Kayıt kartından ekleyin.

Açılan pencerede Bağlantı yapıştır, Kütüphaneden seç ya da Video yükle seçeneğiyle ilerlersiniz; bir bağlantı yapıştırdığınızda Teachfluence onun oynatılıp oynatılmayacağını anında değerlendirir ve Google Drive, Zoom paylaşım linki, Dropbox veya OneDrive önizlemesi gibi oynatılmayan bir bağlantı için sizi uyarır. Yayında olan bir içeriğe eklenen ilk kayıt öğrenciye e-posta gönderir; bir kaydı değiştirmek onlara tekrar e-posta göndermez.

Güvenlik ve bakım

  • Token'ı parola gibi saklayın. lerec_ ile başlar ve kuruluşunuzda kayıt ekleme yetkisi verir; otomasyonun secret alanında tutun, düz metin akışlarına yazmayın.
  • Ekip değişiminde yenileyin. Token, onu oluşturan üye gibi davrandığından o kişinin rolü değişince veya kuruluştan ayrılınca token'ı iptal edip yeniden oluşturun.
  • Süre belirleyin. Süreli otomasyonlar için son kullanma tarihi ekleyin; sürekli çalışanlarda boş bırakın.
  • İptal edin. Token listesindeki İptal et ile bir token'ı anında geçersiz kılarsınız. İptal edilmiş ve süresi dolmuş token'lar 403 döner.

Sorun giderme

BelirtiOlası nedenÇözüm
Öğrenciler "Erişim iste" veya boş oynatıcı görüyorGoogle Drive /view bağlantısı gönderildiListelenmemiş bir YouTube ya da Vimeo bağlantısı gönderin
404 (bulunamadı)Meet bağlantısı yanlış, recordedAt eksik/yanlış, ya da (canlı etkinlik) etkinliğe Meet linki girilmemişMeet bağlantısını ve zamanı kontrol edin; canlı etkinliğin bağlantı alanına Meet linkini yapıştırın
Her istek 403 dönüyorToken iptal edilmiş, süresi dolmuş ya da oluşturan üye yetkiyi kaybetmişAktif bir yönetici altında yeniden oluşturun
Yanıt skipped dönüyor ama kayıt görünmüyorİçerikte zaten bir kayıt var, kaydın otomatik yayınlanması kapatılmış ya da görüşme iptal edilmişKaydı, içeriğin Kayıt kartından elle ekleyin veya değiştirin
422 dönüyor, gövde doğru görünüyorKoçluk hedefinde desteklenmeyen bir sağlayıcının bağlantısı gönderildi (kendi sunucunuzdaki .mp4, Dropbox, OneDrive)Bağlantıyı listelenmemiş YouTube/Vimeo gibi desteklenen bir sağlayıcıya taşıyın
Zoom görüşmesinin kaydı gelmiyorBu akış Google Meet içindirZoom kayıtları Zoom entegrasyonuyla otomatik eklenir
E-posta gitmediİçeriğe daha önce bir kayıt eklenmişti veya içerik yayında değilYalnızca ilk kayıt bildirir

İlgili