2017-03-27 2 views
0

GIT에서 제공하는 proactiveMessages 예제 및 createNewConveration 봇 예제를 살펴 보았습니다. 두 예 모두 처음에는 대화가 봇과 처음 상호 작용 한 후에 채널 계정으로 대화가 시작됨을 보여줍니다. 이전에 봇과 결코 상호 작용하지 않은 사용자 (특히 SMS)와 대화를 시작할 수있는 봇을 만들어야합니다. 유효한 ID (이 경우 SMS 번호)를 사용하여 채널 계정 개체와 메시지 활동의 제작자로 사용할 twilio 전화 번호를 만듭니다.사용자와 대화 작성 - (SMS 채널)

2 질문 : 1) 커넥터 클라이언트를 사용하고 직접 대화를 만들려면 이전에 사용자가 내 봇과 상호 작용 했어야합니까? 그렇다면이 채널 계정 데이터를 봇 데이터 저장소에로드하여 대화를 생성 할 수있는 방법이 있습니까? 2) 우리의 봇 (API를 통해)이 유효한 채널 계정으로 대화를 시작할 수 있도록하는 향후 버전이 있습니까? api는 내가 대화를 생성 할 수있게함으로써 오해의 소지가 있습니다. 이름은 "resumeConversation"이어야합니다.

답변

1

서비스 URL이 https://sms.botframework.com이고 봇 응용 프로그램이 creds 인 커넥터 클라이언트를 통해 대화를 시작할 수있었습니다. 내 추적 기록원에 채널 번호에 국가 번호가 포함되어 있다는 것을 알았습니다. 이 경우 채널 accountId는 +1 [areacode] [number] 형식이어야합니다. 저의 사전 인사말이 성공적으로 전송되었습니다. 그래서 나는 SMS 채널이 BOT에서 사용자에게 대화를 시작할 수 있다고 믿습니다.

이 경우 ServiceUrl은 sms 채널의 경우 https://sms.botframework.com입니다.

var serviceUrl = GetServiceUrlByChannelId(channel); 
    MicrosoftAppCredentials.TrustServiceUrl(serviceUrl, DateTime.Now.AddDays(7)); //todo change magic number 
    var account = new MicrosoftAppCredentials([MicrosoftAppId], [MicrosoftAppPassword]); 

    _connector = new ConnectorClient(new Uri(serviceUrl), account); 

    var botAccount = new ChannelAccount { Id = bot.Id, Name = bot.Name }; 
    var toAccount = new ChannelAccount { Id = recipient.Id, Name = recipient.Name }; 

    if (!MicrosoftAppCredentials.IsTrustedServiceUrl(serviceUrl)) { 
    throw new Exception("Cannot create conversation! Service URL is not trusted!"); 
    } 

    var conversationResponse = _connector.Conversations.CreateDirectConversation(botAccount, toAccount); 
+0

안녕하세요 @ 제이 티나는 어떻게 봇 앱 creds를 종점에 게시했는지 공유 할 수 있습니까? – jsw324

+0

방금 ​​jsw324 답변에 코드 스 니펫을 추가했습니다. 이 질문에 대한 대답이 있습니까? 어떤 엔드 포인트를 호출하려고하는지 확신 할 수 없습니다. ConnectorClient 인스턴스와 새로 생성 된 conversationId를 사용하여 최종 사용자에게 메시지를 보낼 수 있습니다 (conversationId 및 serviceURL). –

+0

그것을 얻었습니다! 고마워요! – jsw324