Bir Meet eklentisi kullanarak ortak çalışma

Toplantı katılımcıları, Google Meet eklenti etkinliğinde ortak çalışabilir. Ortak etkinlik başladığında toplantıdaki tüm katılımcılar etkinliğin devam ettiğine dair bildirim alır.

Bu bildirim, eklentinin kullanılabilirliğine ve yükleme durumuna göre uyarlanır:

  • Katılımcının eklenti yüklüyse: Etkinliğe katılabilir.

  • Katılımcı eklentiyi yüklememişse: Eklentiyi yüklemeye yönlendirilir.

  • Eklenti, katılımcının platformunda kullanılamıyorsa: Katılımcıya, etkinliğe mevcut cihazıyla katılamayacağı bildirilir.

Etkinliğe katılan kullanıcılar, eklenti içeriğinizle kendi iFrame'lerini yükler. Yeni katılımcıların ortak çalışma etkinliğini ana aşamada mı yoksa yan panelde mi açacağını özelleştirebilirsiniz.

Etkinliği başlatma

Etkinlik, startActivity() yönteminin çağrılmasıyla başlatılır. Bu yöntem, ActivityStartingState arayüzünü kullanır.

1. adım (isteğe bağlı): Eklenti, etkinliğin başlangıç durumunu ayarlar

ActivityStartingState Katılımcı etkinliğe katılma davetini kabul ettiğinde kullanılan eklentinin başlangıç durumuyla ilgili bilgileri içerir.

Eklenti, etkinlikten önce veya etkinlik sırasında setActivityStartingState() yöntemini çağırarak ActivityStartingState değerini ayarlayabilir veya güncelleyebilir. setActivityStartingState() aramaları, ActivityStartingState yalnızca startActivity() aramasına ayarlanmışsa atlanabilir.

2. adım: Eklenti, etkinliği başlatır

Etkinlik, eklenti startActivity() üzerinde MeetSidePanelClient yöntemini çağırdığında başlar. startActivity() yöntemi, parametre olarak ActivityStartingState nesnesini alır. Bu nedenle, setActivityStartingState() çağrılmak yerine startActivity() çağrılabilir.

Kullanıcı içerik seçimini tamamlayıp etkinliği başlatmaya hazır olduğunda, eklentinizde startActivity() yöntemini aşağıdaki gibi çağırın:

    sidePanelClient.startActivity({
        mainStageUrl: "https://app.example.com/mainstage",
        additionalData: JSON.stringify({
            // State to send to participants.
        })
    });

startActivity() yöntemi çağrıldığında Meet aşağıdaki işlemleri gerçekleştirir:

  • Diğer katılımcılar için: Meet, etkinliğin devam ettiğine dair bir bildirim gösterir.

  • Başlatıcı için: ActivityStartingState içinde ana sahne URL'si belirtilmişse Meet, ActivityStartingState içindeki URL'yi kullanarak ana sahneyi açar.

3. adım: Etkinliğin başlangıç durumunu alın

Kullanıcı etkinliğe katıldığında, ActivityStartingState değerine bağlı olarak eklentiniz ana aşamaya veya yan panele yüklenir.

additionalData özelliğiyle, etkinliğe katılan kullanıcılarla ilk verileri (durum olarak da adlandırılır) paylaşabilirsiniz. MainStageClient veya SidePanelClient başlatıldıktan sonra additionalData özelliğini almak için getActivityStartingState() yöntemini çağırabilirsiniz.

const startingState = client.getActivityStartingState();
const additionalData = JSON.parse(startingState.additionalData);

4. adım (isteğe bağlı): Eklenti durumunu bir etkinlikte paylaşın

Etkinlik devam ederken kullanıcılar arasında durumu da paylaşabilirsiniz. Durumu iki şekilde paylaşabilirsiniz:

  • Kendi senkronizasyon arka ucunuzu oluşturarak bu işi kendiniz halledebilirsiniz.
  • Kullanıcılar arasında rastgele verileri paylaşmanın kolay ve hızlı bir yolu olan Co-Doing API'yi kullanın.

Örnek: GitHub'daki animasyon eklentisi

GitHub'daki "Animation" örnek eklentisi bir eklentide ortak çalışmayı içerir. Bu kılavuzdaki 1. adım örneğe dahil değildir. Bunun yerine, eklenti başlatıcı yan panelde "Animasyonu Başlat" düğmesini tıkladığında startActivity() yöntemi, başlangıç durumu kullanıcının seçtiği renkle doldurularak çağrılır (2. adım). Etkinlik başladıktan sonra ana sahne, getActivityStartingState() yöntemini çağırarak başlangıç durumunu alır (3. adım). Bu örnek eklentide, etkinlik sırasında durum (seçilen renk) katılımcılar arasında paylaşılmadığı için 4. adım atlanır. Ancak tek tek kullanıcılar, bir renk seçerek kendi durumlarını değiştirebilir. Bu renk, çerçeveden çerçeveye mesajlaşma kullanılarak yan panel çerçevesinden ana sahne çerçevesine gönderilir.

Sınırlamalar