Bu makale, botların nasıl çalıştığı ve Olay odaklı konuşmalar bölümünde öğrendiklerinizle ilgilidir; devam etmeden önce bu makalelere aşina olmanız gerekir.
Microsoft Teams için geliştirilen botlardaki temel fark, etkinliklerin nasıl işlendiğidir. Teams etkinlik işleyicisi, etkinlik işleyicisinden türetilir ve daha genel etkinlik türlerini işlemeden önce Teams'e özgü etkinlik türlerini işler.
Not
Bot Framework JavaScript, C# ve Python SDK'ları desteklenmeye devam edecektir, ancak Java SDK'sı son uzun vadeli destek Kasım 2023'te sona erecek şekilde kullanımdan kaldırılacaktır.
Java SDK ile oluşturulan mevcut botlar çalışmaya devam edecektir.
Yeni bot derlemesi için Microsoft Copilot Studio'yu kullanmayı göz önünde bulundurun ve doğru copilot çözümünü seçme hakkında bilgi edinin.
Teams için bir bot oluşturmak için botunuzu Teams etkinlik işleyicisi sınıfından türetin. Böyle bir bot bir etkinlik aldığında, etkinliği çeşitli etkinlik işleyicileri aracılığıyla yönlendirir. Başlangıçtaki temel işleyici, dönüş işleyicisidir ve etkinliğin türüne göre bir işleyiciye yönlendirir. Dönüş işleyicisi, alınan belirli etkinlik türünü işlemek için tasarlanmış işleyiciyi çağırır. Teams etkinlik işleyici sınıfı, etkinlik işleyici sınıfından türetilir. Etkinlik işleyicisinin işleyebileceği etkinlik türlerine ek olarak, Teams etkinlik işleyicisi sınıfı Teams'e özgü etkinlikler için ek işleyiciler içerir.
Teams etkinlik işleyicisinden türetilen bir bot, doğrudan etkinlik işleyici sınıfından türetilen bir bota benzer.
Ancak Teams etkinliklere conversationUpdate ek bilgiler ekler ve Teams'e özgü invoke ve event etkinlikler gönderir.
Teams etkinlik işleyicisi-botunuz bir ileti etkinliği aldığında, dönüş işleyicisi gelen ileti etkinliğini OnMessageActivityAsync , etkinlik işleyicisi tabanlı bota benzer şekilde işleyicisine yönlendirir. Ancak Teams botunuz bir konuşma güncelleştirme etkinliği aldığında, işleyicinin OnConversationUpdateActivityAsync Teams sürümü etkinliği işler.
Teams'e özgü etkinlik işleyicilerinin çoğu için temel uygulama yoktur. Bu işleyicileri geçersiz kılmanız ve botunuz için uygun mantığı sağlamanız gerekir.
Teams etkinlik işleyicisi-botunuz bir ileti etkinliği aldığında, dönüş işleyicisi gelen ileti etkinliğini onMessage , etkinlik işleyicisi tabanlı bota benzer şekilde işleyicisine yönlendirir. Ancak Teams botunuz bir konuşma güncelleştirme etkinliği aldığında, işleyicinin dispatchConversationUpdateActivity Teams sürümü etkinliği işler.
Teams'e özgü etkinlik işleyicilerinin çoğu için temel uygulama yoktur. Bu işleyicileri geçersiz kılmanız ve botunuz için uygun mantığı sağlamanız gerekir.
Teams'e özgü bu etkinlik işleyicilerini geçersiz kıldığınızda bot mantığınızı tanımlayın ve ardından sonunda arama next() yaptığınızdan emin olun. çağrısı next()yaparak bir sonraki işleyicinin çalıştırıldığından emin olursunuz.
Teams etkinlik işleyicisi-botunuz bir ileti etkinliği aldığında, dönüş işleyicisi gelen ileti etkinliğini onMessageActivity , etkinlik işleyicisi tabanlı bota benzer şekilde işleyicisine yönlendirir. Ancak Teams botunuz bir konuşma güncelleştirme etkinliği aldığında, işleyicinin onConversationUpdateActivity Teams sürümü etkinliği işler.
Teams'e özgü etkinlik işleyicilerinin çoğu için temel uygulama yoktur. Bu işleyicileri geçersiz kılmanız ve botunuz için uygun mantığı sağlamanız gerekir.
Teams etkinlik işleyicisi-botunuz bir ileti etkinliği aldığında, dönüş işleyicisi gelen ileti etkinliğini on_message_activity , etkinlik işleyicisi tabanlı bota benzer şekilde işleyicisine yönlendirir. Ancak Teams botunuz bir konuşma güncelleştirme etkinliği aldığında, işleyicinin on_conversation_update_activity Teams sürümü etkinliği işler.
Teams'e özgü etkinlik işleyicilerinin çoğu için temel uygulama yoktur. Bu işleyicileri geçersiz kılmanız ve botunuz için uygun mantığı sağlamanız gerekir.
Etkinlik işleyicisi makalesi kullanan Olay temelli konuşmaların etkinlik işleme bölümünde açıklanan tüm etkinlik işleyicileri, eklenen ve kaldırılan etkinliklerin işlenmesi dışında Teams olmayan bir botta olduğu gibi çalışmaya devam eder. Bu etkinlikler, yeni üyenin ileti yazışması yerine ekiliğe eklendiği ekip bağlamında farklı olur. Daha fazla bilgi için bkz . Teams konuşma güncelleştirme etkinlikleri.
Teams'e özgü bu etkinlik işleyicileri için mantığınızı uygulamak için botunuzda yöntemleri geçersiz kılacaksınız.
Teams-bot mantığı
Bot mantığı, bir veya daha fazla bot kanalınızdan gelen etkinlikleri işler ve yanıt olarak giden etkinlikler oluşturur. Bu durum, önce Teams etkinliklerini denetleyen, ardından diğer tüm etkinlikleri Bot Framework'ün etkinlik işleyicisine geçiren Teams etkinlik işleyicisi sınıfından türetilen bot için geçerlidir.
Teams yükleme güncelleştirme etkinlikleri
Botunuza izin vermek için yükleme güncelleştirme olayı için bir işleyici ekleyin:
Konuşma yazışması üzerine yüklendiğinde bir giriş iletisi gönderin.
Bir iş parçacığından kaldırıldığında kullanıcı ve iş parçacığı verilerini temizleyin.
Aşağıdaki tabloda, botta konuşma güncelleştirme etkinliği oluşturan Teams olayları listelenmiştir.
Microsoft Teams Konuşma güncelleştirme olayları makalesinde bu olayların her birinin nasıl kullanılacağı açıklanır.
Aşağıda, Teams etkinlik işleyicisinin yönteminden OnConversationUpdateActivityAsync çağrılan tüm Teams etkinlik işleyicilerinin listesi yer almaktadır.
EventType
İşleyici
Koşul
Teams belgeleri
channelCreated
OnTeamsChannelCreatedAsync
Botunuzun yüklendiği bir ekipte yeni bir kanal oluşturulduğunda gönderilir.
Varsayılan olarak yöntemini çağırır ActivityHandler.OnMembersAddedAsync . Botunuz bir konuşmaya ilk kez eklendiğinde ve botunuzun yüklü olduğu bir ekip veya grup sohbetine her yeni kullanıcı eklendiğinde gönderilir.
Varsayılan olarak yöntemini çağırır ActivityHandler.OnMembersRemovedAsync . Botunuz bir ekipten kaldırılırsa ve botunuzun üyesi olduğu bir ekipten her kullanıcı kaldırıldığında gönderilir.
Geliştiriciler Microsoft Teams'den gönderilen konuşma güncelleştirme etkinliklerini iki yöntemle işleyebilir:
Geri çağırma geçirmek için ile başlayan onve ile Event biten yöntemleri kullanın (örneğin, onTeamsMembersAddedEvent yöntemi).
Türetilmiş bir sınıf oluştururken, ile on başlayan ve ile bitmeyecek Event yöntemleri geçersiz kılın (örneğin, onTeamsMembersAdded yöntemi).
Geliştiriciler bu seçeneklerden yalnızca birini kullanmalıdır: aynı etkinlik için her ikisi de değil, 1 veya 2. Diğer bir deyişle, geliştiriciler yönteme onTeamsMembersAddedEventbir geri çağırma geçirmeli veya türetilmiş bir sınıfta yöntemini geçersiz kılmalı onTeamsMembersAdded ve ikisini birden yapmamalıdır.
Geri çağırma kaydetme yöntemleri
Aşağıda, Teams etkinlik işleyicisinin yönteminden dispatchConversationUpdateActivity çağrılan tüm Teams etkinlik yayımlayıcılarının listesi yer almaktadır.
EventType
Kayıt yöntemi
Koşul
Teams belgeleri
channelCreated
onTeamsChannelCreatedEvent
Botunuzun yüklendiği bir ekipte yeni bir kanal oluşturulduğunda gönderilir.
Varsayılan olarak yöntemini çağırır ActivityHandler.onMembersAdded . Botunuz bir konuşmaya ilk kez eklendiğinde ve botunuzun yüklü olduğu bir ekip veya grup sohbetine her yeni kullanıcı eklendiğinde gönderilir.
Varsayılan olarak yöntemini çağırır ActivityHandler.onMembersRemoved . Botunuz bir ekipten kaldırılırsa ve botunuzun üyesi olduğu bir ekipten her kullanıcı kaldırıldığında gönderilir.
Varsayılan olarak yöntemini çağırır ActivityHandler.onMembersAdded . Botunuz bir konuşmaya ilk kez eklendiğinde ve botunuzun yüklü olduğu bir ekip veya grup sohbetine her yeni kullanıcı eklendiğinde gönderilir.
Varsayılan olarak yöntemini çağırır ActivityHandler.onMembersRemoved . Botunuz bir ekipten kaldırılırsa ve botunuzun üyesi olduğu bir ekipten her kullanıcı kaldırıldığında gönderilir.
Varsayılan olarak, temel sınıf on_members_added_activity yöntemini çağırır. Botunuz bir konuşmaya ilk kez eklendiğinde ve botunuzun yüklü olduğu bir ekip veya grup sohbetine her yeni kullanıcı eklendiğinde gönderilir.
Varsayılan olarak, temel sınıf on_members_removed_activity yöntemini çağırır. Botunuz bir ekipten kaldırılırsa ve botunuzun üyesi olduğu bir ekipten her kullanıcı kaldırıldığında gönderilir.
Aşağıdaki tabloda Teams'in bota gönderdiği Teams'e özgü etkinlik etkinlikleri listelenmiştir.
Listelenen etkinlik etkinlikleri Teams'deki konuşma botlarına yöneliktir.
Bunlar, Teams etkinlik işleyicisinden OnEventActivityAsyncçağrılan Teams'e özgü olay etkinliği işleyicileridir.
Olay tipleri
İşleyici
Açıklama
application/vnd.microsoft.meetingEnd
OnTeamsMeetingEndAsync
Bot, yeni sona eren bir toplantıyla ilişkilendirildi.
application/vnd.microsoft.meetingStart
OnTeamsMeetingStartAsync
Bot, yeni başlayan bir toplantıyla ilişkilendirilir.
Bunlar, Teams etkinlik işleyicisinden onEventActivityçağrılan Teams'e özgü olay etkinliği işleyicileridir.
Olay tipleri
İşleyici
Açıklama
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Bot, yeni sona eren bir toplantıyla ilişkilendirildi.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Bot, yeni başlayan bir toplantıyla ilişkilendirilir.
Bunlar, Teams etkinlik işleyicisinden onEventActivityçağrılan Teams'e özgü olay etkinliği işleyicileridir.
Olay tipleri
İşleyici
Açıklama
application/vnd.microsoft.meetingEnd
onTeamsMeetingEnd
Bot, yeni sona eren bir toplantıyla ilişkilendirildi.
application/vnd.microsoft.meetingStart
onTeamsMeetingStart
Bot, yeni başlayan bir toplantıyla ilişkilendirilir.
Bunlar, Teams etkinlik işleyicisinden on_event_activityçağrılan Teams'e özgü olay etkinliği işleyicileridir.
Olay tipleri
İşleyici
Açıklama
application/vnd.microsoft.meetingEnd
on_teams_meeting_end_event
Bot, yeni sona eren bir toplantıyla ilişkilendirildi.
application/vnd.microsoft.meetingStart
on_teams_meeting_start_event
Bot, yeni başlayan bir toplantıyla ilişkilendirilir.
Teams etkinlikleri çağırır
Aşağıdaki tabloda Teams'in bota gönderdiği Teams'e özgü çağırma etkinlikleri listelenmiştir.
Listelenen çağırma etkinlikleri Teams'deki konuşma botlarına yöneliktir. Bot Framework SDK'sı, mesajlaşma uzantılarına özgü çağrıları da destekler. Daha fazla bilgi için Teams Mesajlaşma uzantıları nedir makalesine bakın.
Not
Microsoft Teams platform belgeleri ve Teams JavaScript istemci kitaplığı (TeamsJS), görev modüllerini kalıcı iletişim kutuları olarak ifade eder. Daha fazla bilgi için bkz . İletişim kutuları .