2016-07-18 5 views
1

봇에게 나중에 답글을 보내주기를 바랍니다. 알람 시계처럼, 사용자가 5시에 ping을하면 5시에 사용자에게 메시지를 보내려고합니다. 메시지를받지 않고 어떻게 메시지를 보낼 수 있습니까?나중에 봇 프레임 워크에서 메시지를 보내는 방법은 무엇입니까?

+1

[Microsoft Bot Framework + C#에서 작업을 예약하는 방법] 가능한 복제본 (http://stackoverflow.com/questions/38431234/how-to-schedule-tasks-in-microsoft-bot-framework-c) –

답변

4

받는 사람의 주소를 알 수 있도록 하나 이상의 메시지를 받아야합니다. 수신 메시지에서 주소 정보를 저장해야합니다. 가장 쉬운 방법은 전체 메시지를 저장하는 것입니다.

Nodejs :

var reply = session.message; // address: reply.address 
// ... 
reply.text = 'Wake up!'; 
bot.send(reply); 

C 번호 : 활동 요청에 응답하지 않고

var reply = activity.CreateReply(""); // reply.Recipient, reply.Conversation, etc. 
// ... 
reply.Text = "Wake up!"; 
ConnectorClient connector = new ConnectorClient(new Uri(reply.ServiceUrl)); 
await connector.Conversations.ReplyToActivityAsync(reply); 
0

, 당신은 다음과 같이 그에게 메시지를 보낼 수 있습니다. 나는 당신이 사용자의 ID를 가져야한다는 것을 언급해야한다. 적어도 사용자는 자신의 ID를 저장하기 위해 메시지를 봇에 보내야한다는 것을 의미한다.

string userId ="123456789"; // For Example 
string serviceUrl = "https://telegram.botframework.com"; // For Example 

var connector = new ConnectorClient(new Uri(serviceUrl)); 
IMessageActivity newMessage = Activity.CreateMessageActivity(); 
newMessage.Type = ActivityTypes.Message; 
newMessage.From = new ChannelAccount("<BotId>", "<BotName>"); 
newMessage.Conversation = new ConversationAccount(false, userId); 
newMessage.Recipient = new ChannelAccount(userId); 
newMessage.Text = "<MessageText>"; 
await connector.Conversations.SendToConversationAsync((Activity)newMessage); 

위의 코드는 here에서 온다.

+0

여러 질문에 [동일한 답변] (http://stackoverflow.com/a/41913750/4687348)을 추가하지 마십시오. 가장 좋은 답변을하고 나머지는 중복으로 표시하십시오. [여러 질문에 대한 중복 답변을 추가해도됩니까?] (http://meta.stackexchange.com/q/104227/347985)를 참조하십시오. – FelixSFD

관련 문제