2016-11-09 34 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; 
} 
相關問題