javascript - 向频道发布主动消息时如何在机器人中设置“您和版主可以回复”?
问题描述
我目前正在开发一个向频道发布主动消息的机器人。我的客户希望我主动设置No reply
或You and moderator can reply
在从机器人发布的消息上。
到目前为止我尝试了什么:
// post message to channels
const credentials = new MicrosoftAppCredentials(process.env.MicrosoftAppId, process.env.MicrosoftAppPassword);
const client = new ConnectorClient(credentials, { baseUri: serviceUrl });
const message = MessageFactory.text(inMessage);
let approveResult = false;
let MessageActivityId = "";
const conversationParams = {
isGroup: true,
bot: {
id: process.env.MicrosoftAppId,
name: process.env.BotName
},
conversationType: 'channel',
channelData: {
channel: {
id: teamsChannelId
}
},
activity: message
};
const msRes = await client.conversations.createConversation(conversationParams).catch(e => console.log(e));
我尝试先发布消息,并立即更新活动并将类型设置为ActivityTypes.EndOfConversation
. 但是,它根本不起作用。
const tmpResult = await client.conversations.updateActivity(teamsChannelId, msRes.activityId, {type: ActivityTypes.EndOfConversation})
updateActivity 代码上方的错误表单:
RestError: Unknown activity type
at ...(skipped for paths)
{
code: 'BadArgument',
statusCode: 400,
request: WebResource {
streamResponseBody: false,
url: 'https://{service_url}/{channel_id}/activities/{messageActivityId}',
method: 'PUT',
headers: HttpHeaders {
_headersMap: [Object]
},
body: '{"type":"endOfConversation"}',
query: undefined,
formData: undefined,
withCredentials: false,
abortSignal: undefined,
timeout: 0,
onUploadProgress: undefined,
onDownloadProgress: undefined,
proxySettings: undefined,
keepAlive: undefined,
agentSettings: undefined,
operationSpec: {
httpMethod: 'PUT',
path: 'v3/conversations/{conversationId}/activities/{activityId}',
urlParameters: [Array],
requestBody: [Object],
responses: [Object],
serializer: [Serializer]
}
},
response: {
body: '{"error":{"code":"BadArgument","message":"Unknown activity type"}}',
headers: HttpHeaders {
_headersMap: [Object]
},
status: 400
},
body: {
error: {
code: 'BadArgument',
message: 'Unknown activity type'
}
}
}
有什么方法可以让我这样做吗?谢谢。如果我只能以编程方式禁用 Channels from bot 中的回复功能会更好。
2021-06-28 更新:
解决方案
我自己并没有实际测试过这个属性,但它似乎应该处理你需要的东西:在 Teams 应用程序清单中,机器人上有一个“NotificationOnly”设置,这意味着它不应该允许用户与之交谈(即“回复”)。在https://docs.microsoft.com/en-us/microsoftteams/platform/resources/bot-v3/bots-notification-only查看更多信息
推荐阅读
- r - 如何在多条件下在 R 中绘制 3D
- java - 使用 Java8 Stream 从列表或集合中查找最高值
- swift - Swift AppleScript 内存泄漏
- php - 仅当从程序内启动 xampp 服务器时才返回问号而不是阿拉伯字符
- java - 有没有办法使用 selenium 和 java 从控制台设置中启用保留日志来午餐 ChromeDriver?
- python - Amazon SageMaker 中的 TensorFlow 服务
- javascript - 从 PDF 中提取字体名称
- javascript - 将具有重复值的字符串数组转换为基于索引的对象数组
- excel - 如何删除公式后的空格
- runtime-error - 机器人框架:为什么 Log 忽略我的论点?