有什么方法可以确定我的机器人已添加到 conversation/contact 列表中吗?
Is there any way to identify that my bot is added to conversation/contact list?
我正在尝试介绍我的 BOT。当用户被添加到他们的 conversation/contact 列表时。我尝试过处理 ActivityTypes.ConversationUpdate 消息类型。但它在 Skype 中不起作用。有什么通用的方法可以在所有渠道中使用吗?
这是我使用的代码:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
if (activity.Type == ActivityTypes.Message)
{
// calculate something for us to return
int length = (activity.Text ?? string.Empty).Length;
// return our reply to the user
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await connector.Conversations.ReplyToActivityAsync(reply);
}
else if(activity.Type == ActivityTypes.ConversationUpdate)
{
StateClient stateClient = activity.GetStateClient();
BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id);
if (!userData.GetProperty<bool>("SentGreeting"))
{
Activity reply = activity.CreateReply($"Hi " + activity.From.Name + ", I'm the Microsoft Bot");
userData.SetProperty<bool>("SentGreeting", true);
await stateClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData);
await connector.Conversations.ReplyToActivityAsync(reply);
}
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
works here
提前致谢。
Skype
频道没有发送 ConversationUpdate
消息。 Bot Framework Emulator
和 WebChat
等其他渠道都可以。在 Skype
频道中收到来自用户的消息之前,无法向用户发送消息。
我正在尝试介绍我的 BOT。当用户被添加到他们的 conversation/contact 列表时。我尝试过处理 ActivityTypes.ConversationUpdate 消息类型。但它在 Skype 中不起作用。有什么通用的方法可以在所有渠道中使用吗?
这是我使用的代码:
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
if (activity.Type == ActivityTypes.Message)
{
// calculate something for us to return
int length = (activity.Text ?? string.Empty).Length;
// return our reply to the user
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await connector.Conversations.ReplyToActivityAsync(reply);
}
else if(activity.Type == ActivityTypes.ConversationUpdate)
{
StateClient stateClient = activity.GetStateClient();
BotData userData = await stateClient.BotState.GetUserDataAsync(activity.ChannelId, activity.From.Id);
if (!userData.GetProperty<bool>("SentGreeting"))
{
Activity reply = activity.CreateReply($"Hi " + activity.From.Name + ", I'm the Microsoft Bot");
userData.SetProperty<bool>("SentGreeting", true);
await stateClient.BotState.SetUserDataAsync(activity.ChannelId, activity.From.Id, userData);
await connector.Conversations.ReplyToActivityAsync(reply);
}
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
works here 提前致谢。
Skype
频道没有发送 ConversationUpdate
消息。 Bot Framework Emulator
和 WebChat
等其他渠道都可以。在 Skype
频道中收到来自用户的消息之前,无法向用户发送消息。