2016-11-09 81 views

回答

3

这是不可能的。自从API的v3版本以来,用户现在由每个机器人的唯一用户ID表示。这是为用户提供额外的隐私层(非常像Facebook)。

在从MessageActivity的属性,你只能找到ID和名称,但不是用户名

+1

没有确定他们在想什么,我之所以发言。如果您要将显示名称映射到数据库记录,则会导致问题,因为多个用户可以拥有sam名称。如何解决这个问题? –

0
//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; 
} 
相关问题