如何在bot框架中发送消息?

时间:2016-07-18 10:45:16

标签: scheduled-tasks botframework

我希望我的机器人能够稍后发送一些回复。就像在闹钟中,当用户说,在凌晨5点ping我,然后我想在凌晨5点向用户发送消息。如何在没有收到消息的情况下发送消息?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

如果没有回复活动请求,您可以向他发送消息,如下所示。我应该提到你必须拥有用户的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

相关问题