Bonjour, J'ai créé mon premier bot de test en utilisant Microsoft BotFramework en C#. dans private async Task<Activity> HandleSystemMessage(Activity message)
en if (message.Type == ActivityTypes.ConversationUpdate)
normalement, il devrait informer un nouveau membre ajouté au groupe ou quelqu'un a frappé le bouton de démarrage de bot dans Telegram Messenger. Quand je le teste en mode débogage en utilisant l'émulateur BotFramework, tout fonctionne parfaitement, mais après l'avoir publié, je vois qu'après avoir appuyé sur le bouton démarrer dans Telegram messenger, mon code n'a pas fonctionné. Mon code dans ActivationType.ConversationUpdateConversationUpdate ne se déclenche pas après la publication
foreach (var item in message.MembersAdded)
{
try
{
using (var dbcontext = new WatermarkBotDBEntities())
{
dbcontext.BotUsers.Add(new BotUser()
{
AddedFriends = 0,
ConversationID = message.Conversation.Id,
ServiceUrl = message.ServiceUrl,
UserID = message.From.Id
});
dbcontext.SaveChanges();
if (Request.RequestUri.Query != "")
{
var u = dbcontext.BotUsers.Where(x => x.BotSalCode == Request.RequestUri.Query.Replace("?start=", string.Empty)).FirstOrDefault();
u.AddedFriends++;
dbcontext.Entry(u).State = System.Data.Entity.EntityState.Modified;
if (u != null)
{
var connector = new ConnectorClient(new Uri(u.ServiceUrl));
IMessageActivity newMessage = Activity.CreateMessageActivity();
newMessage.Type = ActivityTypes.Message;
//newMessage.From = new ChannelAccount("<BotId>", "<BotName>");
newMessage.From = new ChannelAccount("c3e7mhdafcecn7ng3", "Bot");
newMessage.Conversation = new ConversationAccount(false, u.ConversationID);
newMessage.Recipient = new ChannelAccount(u.UserID);
if (u.AddedFriends <= 2)
newMessage.Text = $"SomeText.";
else newMessage.Text = "SomeTex";
await connector.Conversations.SendToConversationAsync((Activity)newMessage);
dbcontext.SaveChanges();
}
}
}
}
catch (Exception ex)
{
}
Alors, comment est-il possible de détecter frapper début dans le télégramme? Cordialement
Pouvez-vous s'il vous plaît envoyer votre code tout à l'intérieur 'si (== message.Type ActivityTypes.ConversationUpdate)' – JasonSowers
@JasonSowers J'ajouté le code dans 'if (message.Type == ActivityTypes.ConversationUpdate)' –
Avez vous avez essayé la solution de contournement décrite ici: https://github.com/Microsoft/BotBuilder/issues/1832? –