Найти имя пользователя Skype на канале Microsoft Bot Framework
Я реализовал бот-приложение для Skype с использованием Microsoft Bot Framework (версия 3.0.0.59).
Я реализовал способ получения имени и идентификатора Skype, но не могу получить имя пользователя учетной записи Skype. Как я могу получить имя пользователя моей учетной записи Skype?
2 ответа
Это невозможно. Начиная с версии API v3, пользователь теперь представлен уникальным идентификатором пользователя для каждого бота. Это делается для того, чтобы обеспечить дополнительный уровень конфиденциальности для пользователей (почти как в Facebook).
В свойстве From функции MessageActivity вы найдете только идентификатор и имя, но не имя пользователя.
//Answer
if(activity.From.Name != null)
string userName= activity.From.Name;
//Example
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
string userName= "";
if(activity.From.Name != null)
userName= activity.From.Name;//Here we are getting user name
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
Activity reply = activity.CreateReply(userName);
activity.TextFormat = "markdown";
await connector.Conversations.ReplyToActivityAsync(reply);
}
else
{
HandleSystemMessage(activity);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}