2
我想給我的BOT介紹。當用戶被添加到他們的對話/聯繫人列表中時。我已經通過處理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 預先感謝。
我無法幫助您解決問題,但其他人可能會詳細說明您如何嘗試做到這一點 – gismo
@gismo現在添加了代碼。這適用於模擬器和網絡聊天。不工作在Skype中。有什麼建議麼? –
您是否收到ConversationUpdate事件? – Phito