내 사용자와 내 봇간에 메시지를 기록해야합니다. 몇 가지 연구를 한 후 sGambolati가이 방법을 설명하는이 게시물을 발견했습니다 : https://stackoverflow.com/a/42145416.IActivityLogger 및 Bot Builder를 사용하여 메시지를 기록 할 수 없습니다. C#
그러나이 접근법은 나를 위해 작동하지 않는 것 같습니다. 나는 그가 제공 한 것과 동일한 스 니펫을 시도해 보았지만 여전히 디버그 출력 창에 로그가 표시되지 않습니다.
로거 클래스 :
public class DebugActivityLogger : IActivityLogger
{
public async Task LogAsync(IActivity activity)
{
Debug.WriteLine($"From:{activity.From.Id} - To:{activity.Recipient.Id} - Message:{activity.AsMessageActivity()?.Text}");
}
}
내 Global.asax에 :
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
var builder = new ContainerBuilder();
builder.RegisterType<DebugActivityLogger>()
.AsImplementedInterfaces()
.InstancePerDependency();
builder.Update(Conversation.Container);
}
}
컨트롤러의 표준 에코 샘플 :
여기에 자신의 구현에 따라 코드의
public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
{
if (activity.Type == ActivityTypes.Message)
{
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
int length = (activity.Text ?? string.Empty).Length;
Activity reply = activity.CreateReply($"You sent {activity.Text} which was {length} characters");
await connector.Conversations.ReplyToActivityAsync(reply);
}
var response = Request.CreateResponse(HttpStatusCode.OK);
return response;
}
내가 놓친 게 있니?