Skip to main content
google-meet Plugin, bir OpenClaw aracısı adına açıkça belirtilen Meet URL’lerine katılır. Kapsamı bilinçli olarak dardır:
  • Yalnızca https://meet.google.com/... URL’lerine katılır; kendi bulduğu bir telefon numarasından toplantıyı asla aramaz.
  • googlemeet create, Google Meet API’si (veya tarayıcı yedek yolu) aracılığıyla yeni bir Meet URL’si oluşturabilir ve varsayılan olarak bu URL’ye katılabilir.
  • Chrome katılımı, isteğe bağlı olarak eşleştirilmiş bir Node üzerinde, oturum açılmış bir Chrome profili kullanır. Twilio katılımı, Sesli arama Plugin’i aracılığıyla bir telefon numarasını ve PIN/DTMF’yi tuşlar; doğrudan bir Meet URL’sini arayamaz.
  • mode: "agent" (varsayılan), katılımcı konuşmalarını gerçek zamanlı bir sağlayıcıyla yazıya döker, yapılandırılmış OpenClaw aracısına yönlendirir ve yanıtı normal OpenClaw TTS ile seslendirir. mode: "bidi", gerçek zamanlı bir ses modelinin doğrudan yanıt vermesini sağlar. mode: "transcribe", geri konuşma olmadan yalnızca gözlem için katılır.
  • Plugin bir aramaya katıldığında otomatik bir onay duyurusu yapılmaz.
  • CLI komutu googlemeet; meet ise daha geniş aracı telekonferans iş akışları için ayrılmıştır.

Hızlı başlangıç

Plugin’i ve yerel ses bağımlılıklarını yükleyin, ardından gerçek zamanlı bir sağlayıcı anahtarı ayarlayın. OpenAI, agent modu için varsayılan yazıya dökme sağlayıcısıdır; Google Gemini Live, bidi modu için ses sağlayıcısı olarak kullanılabilir:
blackhole-2ch, Chrome’un sesi yönlendirdiği BlackHole 2ch sanal ses aygıtını yükler. Homebrew yükleyicisi, macOS aygıtı kullanıma sunmadan önce yeniden başlatma gerektirir:
Yeniden başlatmanın ardından her iki bileşeni de doğrulayın:
Plugin, yüklemenin ardından varsayılan olarak etkinleştirilir. Yalnızca özelleştirmek için bir giriş ekleyin:
Plugin’in etkin olmasını istemiyorsanız openclaw plugins disable google-meet komutunu çalıştırın. Kurulumu denetleyin, ardından katılın:
setup çıktısı aracı tarafından okunabilir ve mod/taşıma yöntemine duyarlıdır: Chrome profilini, Node sabitlemesini ve gerçek zamanlı Chrome katılımları için BlackHole/SoX ses köprüsünü ve gecikmeli giriş kontrolünü bildirir. Yalnızca gözlem amaçlı katılımlar gerçek zamanlı ön koşulları atlar:
Twilio yetkilendirmesi yapılandırıldığında setup, ayrıca voice-call, Twilio kimlik bilgilerinin ve genel Webhook erişiminin hazır olup olmadığını bildirir. Bir aracı katılmadan önce tüm ok: false kontrollerini ilgili taşıma yöntemi/mod için engelleyici kabul edin. Makine tarafından okunabilir çıktı için --json, belirli bir taşıma yöntemini önceden ön kontrolden geçirmek için --transport chrome|chrome-node|twilio kullanın:
Alternatif olarak bir aracının google_meet aracı üzerinden katılmasını sağlayın:
macOS dışındaki Gateway ana makinelerinde google_meet; yapıt, takvim, kurulum, yazıya dökme, Twilio ve chrome-node eylemleri için görünür kalır ancak yerel Chrome geri konuşması (mode: "agent" veya "bidi" ile transport: "chrome") ses köprüsüne ulaşmadan engellenir; çünkü bu yol şu anda macOS BlackHole 2ch bileşenine bağlıdır. Bunun yerine mode: "transcribe", Twilio çevirmeli katılımı veya bir macOS chrome-node ana makinesi kullanın.

Toplantı oluşturma

create, sonuçtaki source alanında bildirilen iki yola sahiptir:
  • api: Google Meet OAuth kimlik bilgileri yapılandırıldığında kullanılır. Belirlenimlidir; tarayıcı arayüzünün durumuna bağlı değildir.
  • browser: OAuth kimlik bilgileri olmadan kullanılır. OpenClaw, sabitlenmiş Chrome Node’unda https://meet.google.com/new öğesini açar ve Google’ın gerçek bir toplantı kodu URL’sine yönlendirmesini bekler; söz konusu Node’daki OpenClaw Chrome profilinde Google oturumu önceden açılmış olmalıdır. Hem katılma hem de oluşturma işlemi, yeni bir sekme açmadan önce mevcut bir Meet sekmesini (veya devam eden bir .../new / Google hesabı istemi sekmesini) yeniden kullanır; sekme eşleştirmesi authuser gibi zararsız sorgu dizelerini yok sayar.
create varsayılan olarak katılır ve joined: true ile katılım oturumunu döndürür. Yalnızca URL’yi oluşturmak için --no-join (CLI) veya "join": false (araç) iletin. API ile oluşturulan odalarda Google hesabının varsayılanını devralmak yerine açık bir erişim politikası belirleyin:
Bu yalnızca API ile oluşturulan odalara uygulanır; dolayısıyla OAuth yapılandırılmalıdır. Bu seçenek mevcut olmadan önce kimlik doğrulaması yaptıysanız OAuth onay ekranınıza meetings.space.settings kapsamını ekledikten sonra openclaw googlemeet auth login --json komutunu yeniden çalıştırın. Tarayıcı yedek yolu bir Google oturum açma veya Meet izin engelleyicisiyle karşılaşırsa araç; manualActionReason, manualActionMessage ve browser.nodeId/browser.targetId/browserUrl ile birlikte manualActionRequired: true döndürür. Bu mesajı bildirin ve operatör tarayıcı adımını tamamlayana kadar yeni Meet sekmeleri açmayı durdurun.

Yalnızca gözlem amaçlı katılım

Çift yönlü gerçek zamanlı köprüyü atlamak için "mode": "transcribe" ayarını belirleyin (BlackHole/SoX gereksinimi ve geri konuşma yoktur). Yazıya dökme modundaki Chrome katılımları da OpenClaw’ın mikrofon/kamera izin verme adımını ve Meet’teki Use microphone yolunu atlar; Meet ses seçimi ara ekranını gösterirse otomasyon önce Continue without microphone seçeneğini dener. Yönetilen Chrome taşıma yöntemleri, canlı aracıya danışma yolunu değiştirmeden kalıcı notların kullanılabilmesi için her modda en iyi çaba esaslı bir Meet altyazı gözlemcisi kurar. googlemeet status --json ve googlemeet doctor; captioning, captionsEnabledAttempted, transcriptLines, lastCaptionAt, lastCaptionSpeaker, lastCaptionText ve bir recentTranscript kuyruğu bildirir. Sınırlandırılmış oturum dökümü için izlenen Meet sekmesinin tam kaydını okuyun:
Gözlemci, Meet sayfasında en fazla 2,000 tamamlanmış altyazı satırı tutar. Görünür aşamalı metin, altyazı satırı tamamlanana kadar durum sağlık kuyruğunda kalır; dolayısıyla nextIndex kaydedildiğinde daha sonraki bir metin genişlemesi atlanamaz. Ayrılma işlemi, anlık görüntüden önce görünür satırları sonlandırır. Sınır aşıldığında droppedLines, baştan kaybolan satırları bildirir. Sınırlandırılmış googlemeet transcript kuyruğu hâlâ yalnızca en son sona eren dört oturumu tutar ve Gateway ile birlikte sıfırlanır. OpenClaw ayrıca toplantı boyunca tamamlanan altyazı satırlarını paylaşılan durum veritabanına ekler ve ayrılma sırasında türetilmiş bir özet yazar. Bu kalıcı notları incelemek veya dışa aktarmak için openclaw transcripts kullanın. Otomatik notlar varsayılan olarak etkindir. Kalıcı notları genel olarak devre dışı bırakmak için transcripts.enabled: false ayarını belirleyin; açık transcribe modu yine de yalnızca sınırlandırılmış canlı kuyruğunu gösterir. Twilio katılımlarında tarayıcı altyazı akışı yoktur ve bu yol tarafından kaydedilmez. Evet/hayır dinleme yoklaması için:
Yazıya dökme modunda katılır, yeni altyazı/döküm hareketini bekler ve listenVerified, listenTimedOut, elle yapılacak işlem alanları ve mevcut altyazı sağlığını döndürür.

Gerçek zamanlı oturum sağlığı

Geri konuşmalı oturumlar sırasında google_meet durumu Chrome/ses köprüsü sağlığını bildirir: inCall, manualActionRequired, providerConnected, realtimeReady, audioInputActive, audioOutputActive, son giriş/çıkış zaman damgaları, bayt sayaçları ve köprünün kapalı olma durumu. Yönetilen Chrome oturumları, giriş/test ifadesini yalnızca sağlık durumu inCall: true bildirdikten sonra seslendirir; aksi takdirde speechReady: false ve konuşma girişimi sessizce hiçbir şey yapmamak yerine engellenir. Yerel Chrome katılımları, oturum açılmış OpenClaw tarayıcı profili üzerinden gerçekleşir ve mikrofon/hoparlör yolu için BlackHole 2ch gerektirir. İlk duman testi için tek bir BlackHole aygıtı yeterlidir ancak yankı yapabilir; temiz çift yönlü ses için ayrı sanal aygıtlar veya Loopback tarzı bir grafik kullanın.

Yerel Gateway + Parallels Chrome

Yalnızca Chrome sağlamak için macOS sanal makinesinin içinde tam bir Gateway veya model API anahtarı gerekmez. Gateway’i ve aracıyı yerel olarak, Node ana makinesini ise sanal makinede çalıştırın. Sanal makine bağımlılıklarını yükleyin, yeniden başlatın ve doğrulayın:
Plugin’i varsayılan olarak etkinleştirildiği sanal makineye yükleyin ve Node ana makinesini başlatın:
<gateway-host>, TLS içermeyen bir LAN IP’siyse bu güvenilir özel ağ için açıkça izin verin:
LaunchAgent olarak yüklerken de aynı bayrağı kullanın (bu, işlem ortamıdır; yükleme komutunda bulunduğunda LaunchAgent ortamında saklanır, bir openclaw.json ayarı değildir):
Gateway ana makinesinden Node’u onaylayın, ardından hem googlemeet.chrome hem de tarayıcı yeteneğini/browser.proxy sunduğunu doğrulayın:
Meet’i bu Node üzerinden yönlendirin:
Şimdi Gateway ana makinesinden normal biçimde katılın:
Bir oturum oluşturan veya mevcut oturumu yeniden kullanan, bilinen bir ifadeyi seslendiren ve oturum sağlığını yazdıran tek komutluk duman testi için:
Gerçek zamanlı katılım sırasında tarayıcı otomasyonu konuk adını doldurur, Join/Ask to join düğmesine tıklar ve göründüğünde Meet’in ilk çalıştırmadaki “Use microphone” istemini (veya yalnızca gözlem amaçlı katılım ve yalnızca tarayıcı üzerinden toplantı oluşturma sırasında “Continue without microphone” seçeneğini) kabul eder. Profilin oturumu kapalıysa, Meet toplantı sahibinin kabulünü bekliyorsa, Chrome mikrofon/kamera iznine ihtiyaç duyuyorsa veya Meet çözümlenmemiş bir istemde takılı kaldıysa sonuç, manualActionReason ve manualActionMessage ile birlikte manualActionRequired: true bildirir. Yeniden denemeyi durdurun, bu mesajı browserUrl/browserTitle ile birlikte bildirin ve yalnızca manuel işlem tamamlandıktan sonra yeniden deneyin. chromeNode.node belirtilmezse OpenClaw, yalnızca tam olarak bir bağlı Node hem googlemeet.chrome hem de tarayıcı denetimi sunduğunda otomatik seçim yapar; birden fazla uygun Node bağlı olduğunda chromeNode.node değerini (Node kimliği, görünen ad veya uzak IP) sabitleyin.

Yaygın hata kontrolleri

Yükleme notları

Chrome geri konuşma varsayılanı, OpenClaw’ın paketlemediği veya yeniden dağıtmadığı iki harici araç kullanır; bunları Homebrew aracılığıyla ana sistem bağımlılıkları olarak yükleyin:
  • sox: komut satırı ses yardımcı programı. Plugin, varsayılan 24 kHz PCM16 ses köprüsü için açık CoreAudio aygıt komutları gönderir.
  • blackhole-2ch: Chrome/Meet’in yönlendirildiği BlackHole 2ch aygıtını sağlayan macOS sanal ses sürücüsü.
SoX, LGPL-2.0-only AND GPL-2.0-only kapsamında lisanslanmıştır; BlackHole GPL-3.0 kapsamındadır. BlackHole’u OpenClaw ile paketleyen bir yükleyici veya cihaz oluşturursanız BlackHole’un üst kaynak lisanslamasını inceleyin ya da Existential Audio’dan ayrı bir lisans alın.

Aktarımlar

Chrome

Meet URL’sini OpenClaw tarayıcı denetimi aracılığıyla açar ve oturum açılmış OpenClaw tarayıcı profili olarak katılır. macOS’ta Plugin, başlatmadan önce BlackHole 2ch denetimi yapar ve yapılandırılmışsa Chrome’u açmadan önce bir ses köprüsü sağlık/başlatma komutu çalıştırır. Yerel Chrome için profili browser.defaultProfile ile seçin; bunun yerine chrome.browserProfile, chrome-node ana sistemlerine iletilir.
Chrome mikrofon/hoparlör sesi, yerel OpenClaw ses köprüsü üzerinden yönlendirilir. BlackHole 2ch yüklü değilse katılım, ses yolu olmadan katılmak yerine bir kurulum hatasıyla başarısız olur.

Twilio

Voice Call Pluginine devredilen katı bir arama planıdır. Telefon numaraları için Meet sayfalarını ayrıştırmaz; Google Meet, toplantı için telefonla katılım numarası ve PIN sunmalıdır. Voice Call’u Chrome Node’da değil, Gateway ana sisteminde etkinleştirin:
Gizli bilgileri openclaw.json dışında tutmak için Twilio kimlik bilgilerini ortam üzerinden sağlayın:
Gerçek zamanlı ses sağlayıcısı OpenAI ise bunun yerine realtime.provider: "openai" ile OPENAI_API_KEY kullanın. voice-call etkinleştirildikten sonra Gateway’i yeniden başlatın veya yeniden yükleyin; Plugin yapılandırması değişiklikleri yeniden yüklemeye kadar etkili olmaz. Doğrulayın:
Twilio devri bağlandığında googlemeet setup, twilio-voice-call-plugin, twilio-voice-call-credentials ve twilio-voice-call-webhook kontrollerini içerir.
Özel bir dizi için --dtmf-sequence kullanın; PIN’den önce duraklama için başına w veya virgül ekleyin:

OAuth ve ön kontrol

Meet bağlantısı oluşturmak için OAuth isteğe bağlıdır çünkü googlemeet create tarayıcı otomasyonuna geri dönebilir. Resmî API ile oluşturma, alan çözümleme veya Meet Media API ön kontrolü için OAuth’u yapılandırın. Chrome/Chrome-node katılımları hiçbir zaman OAuth’a bağlı değildir; her iki durumda da oturum açılmış bir Chrome profili, BlackHole/SoX ve (chrome-node için) bağlı bir Node kullanırlar.

Google kimlik bilgileri oluşturma

Google Cloud Console’da:
1

Bir proje oluşturun veya seçin

2

Google Meet REST API'yi etkinleştirin

3

OAuth izin ekranını yapılandırın

Bir Google Workspace kuruluşu için Internal en basit seçenektir. External, kişisel/test kurulumları için çalışır; uygulama Testing durumundayken yetkilendirme yapacak her Google hesabını test kullanıcısı olarak ekleyin.
4

İstenen kapsamları ekleyin

  • https://www.googleapis.com/auth/meetings.space.created
  • https://www.googleapis.com/auth/meetings.space.readonly
  • https://www.googleapis.com/auth/meetings.space.settings
  • https://www.googleapis.com/auth/meetings.conference.media.readonly
  • https://www.googleapis.com/auth/calendar.events.readonly (Takvim araması)
  • https://www.googleapis.com/auth/drive.meet.readonly (transkript/akıllı not belge gövdesi dışa aktarımı)
5

Bir OAuth istemci kimliği oluşturun

Uygulama türü Web application. Yetkilendirilmiş yönlendirme URI’si:
6

İstemci kimliğini ve istemci gizli anahtarını kopyalayın

meetings.space.created, spaces.create için gereklidir. meetings.space.readonly, Meet URL’lerini/kodlarını alanlara çözümler. meetings.space.settings, OpenClaw’ın API ile oda oluşturma sırasında accessType gibi SpaceConfig ayarlarını iletmesini sağlar. meetings.conference.media.readonly, Meet Media API ön kontrolü ve medya çalışmaları içindir; Google, Media API’nin fiilî kullanımı için Developer Preview kaydı gerektirebilir. calendar.events.readonly yalnızca --today/--event takvim araması için gereklidir. drive.meet.readonly yalnızca --include-doc-bodies dışa aktarımı için gereklidir. Yalnızca tarayıcı tabanlı Chrome katılımlarına ihtiyacınız varsa OAuth’u tamamen atlayın.

Yenileme belirtecini oluşturma

oauth.clientId ve isteğe bağlı olarak oauth.clientSecret yapılandırın (veya bunları ortam değişkenleri olarak iletin), ardından şunu çalıştırın:
Bu, http://localhost:8085/oauth2callback üzerinde localhost geri çağrısıyla bir PKCE akışı çalıştırır ve yenileme belirteci içeren bir oauth yapılandırma bloğu yazdırır. Tarayıcı yerel geri çağrıya erişemediğinde kopyala/yapıştır akışı için --manual ekleyin:
JSON çıktısı:
oauth nesnesini Plugin yapılandırması altında saklayın:
Yenileme belirtecini yapılandırmada tutmak istemediğinizde ortam değişkenlerini tercih edin; önce yapılandırma çözümlenir, ardından yedek olarak ortam kullanılır. Toplantı oluşturma, takvim araması veya belge gövdesi dışa aktarma desteği mevcut olmadan önce kimlik doğrulaması yaptıysanız yenileme belirtecinin geçerli kapsam kümesini kapsaması için openclaw googlemeet auth login --json komutunu yeniden çalıştırın.

OAuth’u doctor ile doğrulama

Bu, Chrome çalışma zamanını yüklemeden veya bağlı bir Node gerektirmeden OAuth yapılandırmasının mevcut olduğunu ve yenileme token’ının bir erişim token’ı oluşturabildiğini denetler. Rapor yalnızca durum alanlarını (ok, configured, tokenSource, expiresAt, denetim mesajları) içerir ve erişim token’ını, yenileme token’ını veya istemci sırrını asla yazdırmaz. Yan etkili oluşturma denetimiyle Meet API’nin etkinleştirildiğini ve spaces.create kapsamını doğrulayın:
Mevcut bir alana okuma erişimini doğrulayın:
Bu denetimlerden gelen bir 403 genellikle Meet REST API’nin devre dışı olduğu, yenileme token’ında gerekli kapsamın bulunmadığı veya Google hesabının bu alana erişemediği anlamına gelir. Yenileme token’ı hatası, openclaw googlemeet auth login --json komutunu yeniden çalıştırmanız ve yeni oauth bloğunu saklamanız gerektiği anlamına gelir. Tarayıcı geri dönüşü için OAuth gerekmez; buradaki Google kimlik doğrulaması OpenClaw yapılandırmasından değil, seçilen Node üzerindeki oturum açılmış Chrome profilinden gelir. Bu ortam değişkenleri geri dönüş olarak kabul edilir:
  • OPENCLAW_GOOGLE_MEET_CLIENT_ID veya GOOGLE_MEET_CLIENT_ID
  • OPENCLAW_GOOGLE_MEET_CLIENT_SECRET veya GOOGLE_MEET_CLIENT_SECRET
  • OPENCLAW_GOOGLE_MEET_REFRESH_TOKEN veya GOOGLE_MEET_REFRESH_TOKEN
  • OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN veya GOOGLE_MEET_ACCESS_TOKEN
  • OPENCLAW_GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT veya GOOGLE_MEET_ACCESS_TOKEN_EXPIRES_AT
  • OPENCLAW_GOOGLE_MEET_DEFAULT_MEETING veya GOOGLE_MEET_DEFAULT_MEETING
  • OPENCLAW_GOOGLE_MEET_PREVIEW_ACK veya GOOGLE_MEET_PREVIEW_ACK

Çözümleme, ön denetim ve artefaktları okuma

Meet konferans kayıtlarını oluşturduktan sonra:
--meeting ile artifacts ve attendance varsayılan olarak en son konferans kaydını kullanır; tutulan her kayıt için --all-conference-records parametresini iletin. Takvim araması, artefaktları okumadan önce toplantı URL’sini Google Calendar’dan çözümler (Calendar etkinlikleri salt okunur kapsamını içeren bir yenileme token’ı gerektirir):
--today, Meet bağlantısı içeren bir etkinlik için bugünün primary takvimini arar; --event <query> eşleşen etkinlik metnini arar; --calendar <id> birincil olmayan bir takvimi hedefler. calendar-events eşleşen etkinliklerin önizlemesini gösterir ve latest/artifacts/attendance/export seçeneklerinin hangisini seçeceğini işaretler. Konferans kaydı kimliğini zaten biliyorsanız doğrudan belirtin:
API tarafından oluşturulan bir alanın odasını kapatın:
spaces.endActiveConference çağrısını yapar ve yetkilendirilmiş hesabın yönetebildiği bir alan için meetings.space.created kapsamına sahip OAuth gerektirir. Bir Meet URL’sini, toplantı kodunu veya spaces/{id} değerini kabul eder ve önce bunu API alan kaynağına çözümler. Bu, googlemeet leave işleminden ayrıdır: leave, OpenClaw’ın yerel/oturum katılımını durdurur; end-active-conference, Google Meet’ten alanın etkin konferansını sonlandırmasını ister. Okunabilir bir rapor yazın:
artifacts, Google tarafından sunulduğunda konferans kaydı meta verileriyle birlikte katılımcı, kayıt, transkript, yapılandırılmış transkript girdisi ve akıllı not kaynağı meta verilerini döndürür. --no-transcript-entries, büyük toplantılarda girdi aramasını atlar. attendance, katılımcıları ilk/son görülme zamanlarını, toplam oturum süresini, geç kalma/erken ayrılma bayraklarını içeren katılımcı oturumu satırlarına genişletir ve yinelenen katılımcı kaynaklarını oturum açmış kullanıcıya veya görünen ada göre birleştirir; --no-merge-duplicates ham kaynakları ayrı tutar, --late-after-minutes/--early-before-minutes eşikleri ayarlar. export; summary.md, attendance.csv, transcript.md, artifacts.json, attendance.json ve manifest.json içeren bir klasör yazar. manifest.json, seçilen girdiyi, dışa aktarma seçeneklerini, konferans kayıtlarını, çıktı dosyalarını, sayıları, token kaynağını, kullanılan Calendar etkinliğini ve kısmi alma uyarılarını kaydeder. --zip, klasörün yanına taşınabilir bir arşiv de yazar. --include-doc-bodies, bağlantılı transkript/akıllı not Google Docs metnini Drive files.export aracılığıyla dışa aktarır (Drive Meet salt okunur kapsamını gerektirir); bu olmadan dışa aktarımlar yalnızca Meet meta verilerini ve yapılandırılmış transkript girdilerini içerir. Kısmi bir artefakt hatası (akıllı not listeleme, transkript girdisi veya belge gövdesi hatası), tüm dışa aktarımın başarısız olmasına neden olmak yerine uyarıyı özette/manifestte tutar. --dry-run, aynı verileri getirir ve klasörü veya ZIP’i oluşturmadan manifest JSON’unu yazdırır. Aracılar aynı eylemleri google_meet aracı üzerinden kullanır (export, accessType ile create, end_active_conference, test_listen); bkz. Araç.

Canlı duman testi

Temel artefakt/katılım duman testi meetings.space.readonly ve meetings.conference.media.readonly gerektirir. Calendar araması calendar.events.readonly gerektirir. Drive belge gövdesi dışa aktarımı drive.meet.readonly gerektirir.

Oluşturma örnekleri

Yeni toplantı URI’sini, kaynağını ve katılma oturumunu yazdırır. OAuth ile Meet API’yi; OAuth olmadan sabitlenmiş Chrome Node’unun oturum açılmış profilini kullanır. Tarayıcı geri dönüşü JSON’u:
Tarayıcı geri dönüşü önce Google oturum açma sayfasına veya bir Meet izin engeline ulaşırsa google_meet, düz bir dize yerine yapılandırılmış ayrıntılar döndürür:
API oluşturma JSON’u:
Oluşturma işlemi varsayılan olarak toplantıya katılır ancak Chrome/Chrome-node’un tarayıcı üzerinden katılması için yine de oturum açılmış bir Google profili gerekir; oturum kapalıysa OpenClaw, manualActionRequired: true veya bir tarayıcı geri dönüşü hatası bildirir ve yeniden denemeden önce operatörden Google oturum açma işlemini tamamlamasını ister. preview.enrollmentAcknowledged: true değerini yalnızca Cloud projenizin, OAuth sorumlusunun ve toplantı katılımcılarının Meet medya API’leri için Google Workspace Developer Preview Program’a kayıtlı olduğunu doğruladıktan sonra ayarlayın.

Yapılandırma

Yaygın Chrome aracı yolu yalnızca Plugin’in etkinleştirilmesini, BlackHole’u, SoX’u, gerçek zamanlı bir sağlayıcı anahtarını ve yapılandırılmış bir OpenClaw TTS sağlayıcısını gerektirir:

Varsayılanlar

chrome.audioBridgeCommand ve chrome.audioBridgeHealthCommand, chrome.audioInputCommand/chrome.audioOutputCommand yerine harici bir köprünün yerel ses yolunun tamamını yönetmesine olanak tanır; bunları hangi modun kullanabileceğine ilişkin kısıtlama için Notlar bölümüne bakın. Eski realtime.provider: "google" biçimi için bir openclaw doctor --fix geçişi vardır: bu alanlar henüz ayarlanmamışsa söz konusu amacı realtime.voiceProvider: "google" ile realtime.transcriptionProvider: "openai" alanlarına taşır.

İsteğe bağlı geçersiz kılmalar

Hem ajan modunda dinleme hem de konuşma için ElevenLabs:
Kalıcı Meet sesi tts.providers.elevenlabs.speakerVoiceId kaynağından gelir. TTS modeli geçersiz kılmaları etkinleştirildiğinde ajan yanıtları, yanıt başına [[tts:speakerVoiceId=... model=eleven_v3]] yönergelerini de kullanabilir; ancak toplantılar için yapılandırma belirlenimci varsayılandır. Katılım sırasında günlüklerde transcriptionProvider=elevenlabs gösterilir ve söylenen her yanıt provider=elevenlabs model=eleven_v3 speakerVoiceId=<voiceId> olarak günlüğe kaydedilir. Yalnızca Twilio yapılandırması:
voiceCall.enabled: true (varsayılan) ve Twilio aktarımı kullanıldığında Voice Call, gerçek zamanlı medya akışını açmadan önce DTMF dizisini gönderir, ardından kaydedilmiş giriş metnini ilk gerçek zamanlı selamlama olarak kullanır. voice-call etkin değilse Google Meet, arama planını yine de doğrulayıp kaydedebilir ancak Twilio aramasını gerçekleştiremez. Yerel güvenilir Gateway çalışma zamanını kullanmak için voiceCall.gatewayUrl ayarını yapmayın; bu çalışma zamanı, çağrıyı başlatan agent’ı çağrının tamamı boyunca korur. Yapılandırılmış bir Gateway URL’si açık bir WebSocket hedefi olarak kalır ve plugin kaynağının kimliğini doğrulayamaz; varsayılan olmayan agent katılımları, sessizce başka bir agent kullanmak yerine güvenli biçimde başarısız olur. Agent başına yönlendirme gerektiğinde Google Meet ve Voice Call’u aynı Gateway işleminde çalıştırın.

Araç

Agent’lar google_meet aracını kullanır:
test_speech her zaman mode: "agent" veya "bidi" kullanımını zorunlu kılar ve yalnızca gözlem oturumları konuşma üretemediğinden mode: "transcribe" içinde çalıştırılması istendiğinde başarısız olur. speechOutputVerified, hem yeni gerçek zamanlı çıkış baytlarının hem de bu çıkış sırasında köprünün mikrofon yakalama yoluna dönen yeni ve sessiz olmayan sesin bulunmasını gerektirir. Yeniden kullanılan bir oturumun eski çıkışı veya geri döngü sinyali hesaba katılmaz ve yalnızca alıcı baytlarındaki artış artık konuşmanın doğrulandığını bildirmez. Chrome aktarımlarında leave, Meet’in Ayrıl düğmesine tıklandıktan sonra yeniden kullanılan ve kullanıcıya ait olan sekmeyi açık tutar. OpenClaw tarafından açılan sekmeler ayrılmanın ardından kapatılır. Chrome Gateway ana makinesinde çalıştığında transport: "chrome", eşleştirilmiş bir Node üzerinde çalıştığında transport: "chrome-node" kullanın. Her iki durumda da model sağlayıcıları ve openclaw_agent_consult Gateway ana makinesinde çalışır; böylece model kimlik bilgileri orada kalır. Agent modu günlükleri, köprü başlangıcında çözümlenen transkripsiyon sağlayıcısını/modelini ve sentezlenen her yanıttan sonra TTS sağlayıcısını/modelini/sesini/çıkış biçimini/örnekleme hızını içerir. Ham mode: "realtime", mode: "agent" için eski bir uyumluluk diğer adı olarak hâlâ kabul edilir, ancak artık aracın mode enum’unda gösterilmez. API destekli bir oda ve açık erişim politikasıyla create:
Bilinen bir odanın etkin konferansını sonlandırma:
Bir toplantının yararlı olduğunu öne sürmeden önce dinleme öncelikli doğrulama:
İstek üzerine konuşma:
status, kullanılabildiğinde Chrome durumunu içerir:

Agent ve çift yönlü modlar

agent modu: Gerçek zamanlı transkripsiyon sağlayıcısı toplantı sesini dinler, nihai katılımcı transkriptleri yapılandırılmış OpenClaw agent’ı üzerinden yönlendirilir ve yanıt normal OpenClaw TTS aracılığıyla seslendirilir. Yakın nihai transkript parçaları danışma öncesinde birleştirilir; böylece tek bir konuşma sırası, birkaç eski kısmi yanıt üretmez. Kuyruktaki asistan sesi oynatılmaya devam ederken gerçek zamanlı giriş engellenir ve BlackHole geri döngüsünün agent’ın kendi konuşmasına yanıt vermesine yol açmaması için yakın tarihli, asistana benzer transkript yankıları danışma öncesinde yok sayılır. bidi modu: Gerçek zamanlı ses modeli doğrudan yanıt verir ve daha derin akıl yürütme, güncel bilgiler veya normal OpenClaw araçları için openclaw_agent_consult çağrısı yapabilir. Danışma aracı, arka planda normal OpenClaw agent’ını yakın tarihli toplantı transkripti bağlamıyla çalıştırır ve kısa, seslendirilebilir bir yanıt döndürür; agent modunda OpenClaw bu yanıtı doğrudan TTS’ye gönderir, bidi modunda ise gerçek zamanlı ses modeli yanıtı seslendirebilir. Voice Call ile aynı paylaşılan danışma mekanizmasını kullanır. Danışmalar varsayılan olarak main agent’ı üzerinde çalışır; bir Meet hattını özel bir agent çalışma alanına, model varsayılanlarına, araç politikasına, belleğe ve oturum geçmişine yönlendirmek için realtime.agentId ayarlayın. Agent modu danışmaları, takip sorularının normal agent politikasını devralırken toplantı bağlamını koruması için toplantı başına bir agent:<id>:subagent:google-meet:<session> oturum anahtarı kullanır. Bir agent, agent modunda google_meet çağrısı yaptığında danışman oturumu, katılımcı konuşmasını yanıtlamadan önce çağıranın geçerli transkriptinden çatallanır; Meet oturumu ayrı kalır, böylece toplantıdaki takip soruları çağıranın transkriptini doğrudan değiştirmez. realtime.toolPolicy, danışma çalıştırmasını denetler: Danışma oturum anahtarı Meet oturumu başına kapsamlandırılır; bu nedenle takip eden danışma çağrıları aynı toplantı sırasında önceki danışma bağlamını yeniden kullanır. Chrome tamamen katıldıktan sonra sesli bir hazır olma kontrolünü zorunlu kılın:
Tam katılma ve konuşma duman testi:

Canlı test kontrol listesi

Bir toplantıyı gözetimsiz bir agent’a devretmeden önce:
Beklenen Chrome-node durumu:
  • googlemeet setup tamamen yeşildir ve Chrome-node varsayılan aktarım olduğunda veya bir node sabitlendiğinde chrome-node-connected içerir.
  • nodes status, seçili node’un bağlı olduğunu ve hem googlemeet.chrome hem de browser.proxy özelliklerini duyurduğunu gösterir.
  • Meet sekmesi katılır ve test-speech, inCall: true ile Chrome durumunu döndürür.
Parallels macOS VM gibi uzak bir Chrome ana makinesi için Gateway veya VM güncellendikten sonraki en kısa güvenli denetim:
Bu, bir temsilci gerçek bir toplantı sekmesi açmadan önce Gateway Plugin’inin yüklendiğini, VM node’unun güncel token ile bağlı olduğunu ve Meet ses köprüsünün kullanılabilir olduğunu doğrular. Twilio duman testi için telefonla katılım bilgilerini sunan bir toplantı kullanın:
Beklenen Twilio durumu:
  • googlemeet setup; yeşil twilio-voice-call-plugin, twilio-voice-call-credentials ve twilio-voice-call-webhook denetimlerini içerir.
  • voicecall, Gateway yeniden yüklendikten sonra CLI’da kullanılabilir.
  • Döndürülen oturumda transport: "twilio" ve bir twilio.voiceCallId bulunur.
  • openclaw logs --follow, gerçek zamanlı TwiML’den önce DTMF TwiML’in sunulduğunu, ardından ilk karşılamanın kuyruğa alındığı bir gerçek zamanlı köprüyü gösterir.
  • googlemeet leave <sessionId>, devredilen sesli aramayı sonlandırır.

Sorun giderme

Temsilci Google Meet aracını göremiyor

Plugin’in etkin olduğunu doğrulayın ve Gateway’i yeniden yükleyin; çalışan temsilci yalnızca mevcut Gateway işlemi tarafından kaydedilmiş Plugin araçlarını görür:
macOS dışındaki Gateway ana makinelerinde google_meet görünür kalır, ancak yerel Chrome geri konuşma eylemleri ses köprüsüne ulaşmadan engellenir. Varsayılan yerel Chrome temsilcisi yolu yerine mode: "transcribe", Twilio telefonla katılımı veya macOS chrome-node ana makinesi kullanın.

Bağlı, Google Meet özellikli node yok

Node ana makinesinde:
Gateway ana makinesinde:
Node bağlı olmalı ve googlemeet.chrome ile browser.proxy öğelerini listelemelidir; Gateway yapılandırması her ikisine de izin vermelidir:
googlemeet setup, chrome-node-connected denetiminde başarısız olursa veya Gateway günlüğü gateway token mismatch bildirirse node’u güncel Gateway token’ı ile yeniden kurun ya da yeniden başlatın:
Ardından node hizmetini yeniden yükleyip şunları tekrar çalıştırın:

Tarayıcı açılıyor ancak temsilci katılamıyor

Yalnızca gözlem amaçlı katılımlar için googlemeet test-listen, gerçek zamanlı katılımlar için googlemeet test-speech çalıştırın; ardından döndürülen Chrome durumunu inceleyin. Bunlardan biri manualActionRequired: true bildirirse operatöre manualActionMessage gösterin ve tarayıcı eylemi tamamlanana kadar yeniden denemeyi bırakın. Yaygın manuel eylemler: Chrome profiline giriş yapın; konuğu Meet ana makine hesabından kabul edin; yerel istem göründüğünde Chrome mikrofon/kamera izinlerini verin; takılı kalan Meet izin iletişim kutusunu kapatın veya düzeltin. Meet yalnızca “Do you want people to hear you in the meeting?” diye sorduğu için “oturum açılmamış” bildiriminde bulunmayın; bu, Meet’in ses seçimi ara ekranıdır. OpenClaw, kullanılabilir olduğunda tarayıcı otomasyonu aracılığıyla Use microphone öğesine tıklar ve gerçek toplantı durumunu beklemeye devam eder; yalnızca oluşturma amaçlı tarayıcı geri dönüşünde bunun yerine Continue without microphone öğesine tıklayabilir çünkü URL oluşturmak için gerçek zamanlı ses yolu gerekmez.

Toplantı oluşturma başarısız oluyor

googlemeet create, OAuth yapılandırılmışsa Meet API spaces.create öğesini, aksi takdirde sabitlenmiş Chrome node tarayıcısını kullanır. Şunları doğrulayın:
  • API ile oluşturma: oauth.clientId ve oauth.refreshToken (veya eşleşen OPENCLAW_GOOGLE_MEET_* ortam değişkenleri) mevcuttur ve yenileme token’ı oluşturma desteği eklendikten sonra üretilmiştir; eski token’larda meetings.space.created bulunmayabilir, bu nedenle openclaw googlemeet auth login --json komutunu yeniden çalıştırın.
  • Tarayıcı geri dönüşü: defaultTransport: "chrome-node" ve chromeNode.node, browser.proxy ile googlemeet.chrome özelliklerine sahip bağlı bir node’u gösterir; bu node’daki OpenClaw Chrome profilinde oturum açılmıştır ve profil https://meet.google.com/new öğesini açabilir.
  • Tarayıcı geri dönüşü yeniden denemeleri: yeni bir sekme açmadan önce mevcut bir .../new veya Google hesabı istem sekmesini yeniden kullanın; manuel olarak başka bir sekme açmak yerine araç çağrısını yeniden deneyin.
  • Manuel eylem: araç manualActionRequired: true döndürürse operatörü yönlendirmek için browser.nodeId, browser.targetId, browserUrl ve manualActionMessage kullanın; döngü içinde yeniden denemeyin.
  • Ses seçimi ara ekranı: Meet “Do you want people to hear you in the meeting?” mesajını gösterirse sekmeyi açık bırakın. OpenClaw, Use microphone veya (yalnızca oluşturma için) Continue without microphone öğesine tıklayıp oluşturulan URL’yi beklemeye devam etmelidir; bunu yapamazsa hata google-login-required değil, meet-audio-choice-required belirtmelidir.

Temsilci katılıyor ancak konuşmuyor

STT -> OpenClaw temsilcisi -> TTS yolu için mode: "agent", doğrudan gerçek zamanlı ses geri dönüşü için mode: "bidi" kullanın. mode: "transcribe" kasıtlı olarak geri konuşma köprüsü başlatmaz. Yalnızca gözlem amaçlı hata ayıklamada katılımcılar konuştuktan sonra openclaw googlemeet status --json <session-id> çalıştırın ve captioning, transcriptLines, lastCaptionText öğelerini denetleyin. inCall doğruysa ancak transcriptLines, 0 olarak kalıyorsa Meet altyazıları devre dışı olabilir, gözlemci kurulduğundan beri kimse konuşmamış olabilir, Meet kullanıcı arayüzü değişmiş olabilir veya toplantı dili/hesabı için canlı altyazılar kullanılamıyor olabilir. googlemeet test-speech her zaman gerçek zamanlı yolu denetler ve bu çağrı için köprü çıkış baytlarının gözlemlenip gözlemlenmediğini bildirir. speechOutputVerified yanlış ve speechOutputTimedOut doğruysa gerçek zamanlı sağlayıcı ifadeyi kabul etmiş olabilir ancak OpenClaw, Chrome ses köprüsüne ulaşan yeni çıkış baytlarını görmemiştir. Şunları da doğrulayın: Gateway ana makinesinde bir gerçek zamanlı sağlayıcı anahtarı (OPENAI_API_KEY veya GEMINI_API_KEY) kullanılabilir; Chrome ana makinesinde BlackHole 2ch görünür; orada sox bulunur; Meet mikrofonu/hoparlörü sanal ses yolu üzerinden yönlendirilir (doctor, yerel Chrome gerçek zamanlı katılımları için meet output routed: yes göstermelidir). googlemeet doctor [session-id]; oturumu, node’u, aramadaki durumu, manuel eylem nedenini, gerçek zamanlı sağlayıcı bağlantısını, realtimeReady, ses giriş/çıkış etkinliğini, son ses zaman damgalarını, bayt sayaçlarını ve tarayıcı URL’sini yazdırır. Ham JSON için googlemeet status [session-id] --json, token’ları açığa çıkarmadan OAuth yenilemesini doğrulamak için googlemeet doctor --oauth (--meeting veya --create-space ekleyin) kullanın. Bir temsilci zaman aşımına uğradıysa ve bir Meet sekmesi zaten açıksa başka bir sekme açmadan inceleyin:
Eşdeğer araç eylemi recover_current_tab’dir: seçili aktarım için mevcut bir Meet sekmesine odaklanır ve sekmeyi (chrome için yerel tarayıcı denetimi, chrome-node için yapılandırılmış node) yeni bir sekme veya oturum açmadan inceler ve mevcut engeli (giriş, kabul, izinler, ses seçimi durumu) bildirir. CLI komutu, çalışıyor olması gereken yapılandırılmış Gateway ile iletişim kurar; chrome-node ayrıca node’un bağlı olmasını gerektirir.

Twilio kurulum denetimleri başarısız oluyor

voice-call izinli veya etkin olmadığında twilio-voice-call-plugin başarısız olur: bunu plugins.allow öğesine ekleyin, plugins.entries.voice-call öğesini etkinleştirin ve Gateway’i yeniden yükleyin. Twilio arka ucunda hesap SID’si, kimlik doğrulama token’ı veya arayan numarası eksik olduğunda twilio-voice-call-credentials başarısız olur:
voice-call herkese açık Webhook erişimine sahip olmadığında veya publicUrl geri döngü/özel ağ alanını gösterdiğinde twilio-voice-call-webhook başarısız olur. publicUrl olarak localhost, 127.0.0.1, 0.0.0.0, 10.x, 172.16.x-172.31.x, 192.168.x, 169.254.x, fc00::/7 veya fd00::/8 kullanmayın; operatör geri çağrıları bunlara ulaşamaz. plugins.entries.voice-call.config.publicUrl değerini herkese açık bir URL olarak ayarlayın veya bir tünel/Tailscale erişimi yapılandırın:
Yerel geliştirmede özel bir ana makine URL’si yerine tünel veya Tailscale erişimi kullanın:
Gateway’i yeniden başlatın veya yeniden yükleyin, ardından:
voicecall smoke varsayılan olarak yalnızca hazır olma durumunu denetler. Belirli bir numara için deneme çalıştırması yapın:
Yalnızca kasıtlı olarak gerçek bir giden arama yapmak için --yes ekleyin:

Twilio araması başlıyor ancak toplantıya hiç girmiyor

Meet etkinliğinin telefonla katılım bilgilerini sunduğunu doğrulayın ve tam katılım numarasıyla birlikte PIN’i veya özel bir DTMF dizisini iletin:
PIN’den önce duraklatmak için --dtmf-sequence içinde başta w veya virgüller kullanın. Arama oluşturulduğu hâlde Meet katılımcı listesinde telefonla katılan kişi hiç görünmüyorsa:
  • openclaw googlemeet doctor <session-id>: devredilen Twilio arama kimliğini, DTMF’nin kuyruğa alınıp alınmadığını ve giriş karşılamasının istenip istenmediğini doğrulayın.
  • openclaw voicecall status --call-id <id>: aramanın hâlâ etkin olduğunu doğrulayın.
  • openclaw voicecall tail: Twilio Webhook’larının Gateway’e ulaştığını doğrulayın.
  • openclaw logs --follow: Twilio Meet sırasını arayın: Google Meet katılımı devreder, Voice Call bağlantı öncesi DTMF TwiML’i depolayıp sunar, Voice Call Twilio araması için gerçek zamanlı TwiML sunar, ardından Google Meet voicecall.speak ile giriş konuşmasını ister.
  • openclaw googlemeet setup --transport twilio komutunu yeniden çalıştırın; yeşil kurulum denetimi gereklidir ancak toplantı PIN dizisinin doğru olduğunu kanıtlamaz.
  • Telefonla katılım numarasının PIN ile aynı Meet davetine ve bölgesine ait olduğunu doğrulayın.
  • Meet yavaş yanıt veriyorsa veya bağlantı öncesi DTMF gönderildikten sonra arama dökümü hâlâ PIN istemini gösteriyorsa voiceCall.dtmfDelayMs değerini 12 saniyelik varsayılandan artırın.
  • Katılımcı katıldığı hâlde karşılamayı duymuyorsanız DTMF sonrası voicecall.speak isteği ve medya akışı TTS oynatımı ya da Twilio <Say> geri dönüşü için openclaw logs --follow öğesini denetleyin. Döküm hâlâ “enter the meeting PIN” gösteriyorsa telefon bağlantısı henüz Meet odasına katılmamıştır; bu nedenle katılımcılar konuşmayı duymaz.
Webhook’lar ulaşmıyorsa önce Voice Call plugininde hata ayıklayın: sağlayıcının plugins.entries.voice-call.config.publicUrl adresine veya yapılandırılmış tünele erişebilmesi gerekir. Bkz. Sesli arama sorunlarını giderme.

Notlar

Google Meet’in resmi medya API’si alım odaklıdır; bu nedenle bir aramada konuşmak için yine de bir katılımcı yolu gerekir. Bu plugin, söz konusu sınırı görünür tutar: Chrome, tarayıcı katılımını ve yerel ses yönlendirmesini; Twilio ise telefonla katılımı yönetir. Chrome geri konuşma modları için BlackHole 2ch ile birlikte aşağıdakilerden biri gerekir:
  • chrome.audioInputCommand ve chrome.audioOutputCommand: Köprünün sahibi OpenClaw’dur ve sesi bu komutlarla seçilen sağlayıcı arasında chrome.audioFormat biçiminde aktarır. agent modu, gerçek zamanlı transkripsiyon ile normal TTS’yi; bidi modu ise gerçek zamanlı ses sağlayıcısını kullanır. Varsayılan yol, chrome.audioBufferBytes: 4096 ile 24 kHz PCM16’dır; eski komut çiftleri için 8 kHz G.711 mu-law seçeneği kullanılabilir durumda kalır.
  • chrome.audioBridgeCommand: Harici bir köprü komutu, yerel ses yolunun tamamının sahibidir ve arka plan programını başlattıktan veya doğruladıktan sonra sonlanmalıdır. Yalnızca bidi için geçerlidir; çünkü agent modu, TTS için komut çiftine doğrudan erişim gerektirir.
Komut çiftli Chrome köprüsünde chrome.bargeInInputCommand, ayrı bir yerel mikrofonu dinleyebilir ve bir kişi konuşmaya başladığında asistan oynatımını temizleyebilir. Böylece paylaşılan BlackHole geri döngü girişi, asistan oynatımı sırasında geçici olarak bastırılsa bile insan konuşmasına asistan çıktısından önce öncelik verilir. chrome.audioInputCommand/chrome.audioOutputCommand gibi bu da operatör tarafından yapılandırılan yerel bir komuttur: açıkça belirtilmiş, güvenilir bir komut yolu veya bağımsız değişken listesi kullanın; güvenilmeyen bir konumdaki betiği asla kullanmayın. Temiz çift yönlü ses için Meet çıkışını ve Meet mikrofonunu ayrı sanal cihazlar ya da Loopback tarzı bir sanal cihaz grafiği üzerinden yönlendirin; tek bir paylaşılan BlackHole cihazı, diğer katılımcıların sesini aramaya geri yansıtabilir. googlemeet speak, bir Chrome oturumu için etkin geri konuşma ses köprüsünü tetikler; googlemeet leave bunu durdurur (ve Voice Call üzerinden devredilen Twilio oturumlarında temel aramayı sonlandırır). API tarafından yönetilen bir alanın etkin Google Meet konferansını da kapatmak için googlemeet end-active-conference kullanın.

İlgili