我试图通过启动线程使我的bot框架bot回复用户。这样,我可以保持僵尸程序在与很多人聊天的频道中与谁聊天。
根据松弛的文档,我需要将~/bin/gam/
属性设置为发送给我的机器人的thread_ts
属性。我已经尝试了一些方法,但无法完成此操作。这是我最简洁的示例:
ts
这对我不起作用。
答案 0 :(得分:10)
您需要在ChannelData中设置文本,以便您的机器人在线程中回复。现在,您正在活动中进行设置
reply = reply.CreateReply("reply");
您所需要做的就是这个:
reply.ChannelData = JObject.Parse($"{{text:'reply', thread_ts:'{ts}'}}");
这是对话框中的完整工作方法:
public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<IMessageActivity> argument)
{
var activity = await argument;
var ts = activity.ChannelData?.SlackMessage?.thread_ts
?? activity.ChannelData?.SlackMessage?.ts
?? activity.ChannelData?.SlackMessage["event"].thread_ts
?? activity.ChannelData?.SlackMessage["event"].ts;
var reply = (Activity)activity;
reply = reply.CreateReply();
reply.ChannelData = JObject.Parse($"{{text:'reply', thread_ts:'{ts}'}}");
await context.PostAsync(reply);
}