我在 Bot Framework 上遇到奇怪的错误。它总是说:
POST connect ECONNREFUSED 127.0.0.1:3978
Run Code Online (Sandbox Code Playgroud)
这是 Bot Framework Channel Operator 的详细信息:
{
"type": "conversationUpdate",
"membersAdded": [
{
"id": "default-bot",
"name": "Bot"
}
],
"id": "1dhnjafnclhfeml51c",
"channelId": "emulator",
"timestamp": "2017-04-22T03:56:06.215Z",
"localTimestamp": "2017-04-22T11:56:06+08:00",
"recipient": {
"id": "default-bot",
"name": "Bot"
},
"conversation": {
"id": "a1376jghbggg6a5hjc"
},
"from": {
"id": "default-user",
"name": "User"
},
"serviceUrl": "http://localhost:51293"
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 Visual Studio 2017,使用 Bot 应用程序模板并通过 Bot Framework Channel Emulator 连接 API。我尝试刷新模拟器以启动新消息,尝试重新启动网站项目,重建它,但它仍然是一样的。我没有更改机器人应用程序模板上的代码。本地主机 URL 正确。我不确定为什么会遇到错误或者我错过了什么。
我更新了 Bot Framework 机器人的名称 + 图标。在 Teams 中,我看不到更新它的方法。我记得必须手动删除程序文件中的一些缓存文件夹,但想知道是否有更简单的方法(+ 来自 Web 的 Teams 中的机器人与我的本地缓存关系不大,并且而且那个也不会刷新)。
如何在 Teams 桌面 + Web 中刷新我的机器人名称 + 图标?
我想用 C# 中的 BotBuilder 主动发起对话。主动消息工作正常,但我想发起一个对话。他们的方式是使用我的 Bot 类中的 dialogSet,但在这种情况下,我在另一个类上执行回调并且无法访问 dialogSet。这样做的正确方法是什么?
我使用 Direct Line 构建了我的机器人,并且在那里进行了身份验证。但是当我将我的机器人部署到 MS Teams 时,按下登录按钮根本没有任何作用。我使用了以下代码:
AddDialog(new OAuthPrompt(
nameof(OAuthPrompt),
new OAuthPromptSettings
{
ConnectionName = ConnectionName,
Text = " Welcome! Please Sign In.",
Title = "Sign In",
Timeout = 300000, // User has 5 minutes to login (1000 * 60 * 5),
})
);
Run Code Online (Sandbox Code Playgroud)
我尝试查找文档,但似乎他们使用的是不同的框架,或者 v3 bot 框架。如何让 OAuth 在 web 和 ms 团队中工作?
我正在使用 Bot Framework v4。
我有一个机器人客户端,我在其中启用了语音功能。当我在新窗口中打开机器人客户端时,一切正常。最近,我们在页面中添加了此机器人客户端站点 URL 作为 IFrame。在此情况下,除语音功能外,所有功能都运行良好。当我们单击麦克风图标时,没有任何反应。
已在多种浏览器和设备中尝试过,所有设备中都有同样的问题。Windows - Chrome、IE iPad、iPhone
这是预期的行为吗?或者我需要更新什么吗?
如果您希望我分享任何代码,请告诉我。
代码。
speechOptions = {
speechRecognizer: new CognitiveServices.SpeechRecognizer({
subscriptionKey:
'xxx'
}),
speechSynthesizer: new CognitiveServices.SpeechSynthesizer({
gender: CognitiveServices.SynthesisGender.Female,
subscriptionKey: 'xxx'
voiceName: 'Microsoft Server Speech Text to Speech Voice (en-US, ZiraRUS)'
})
};
BotChat.App({
botConnection: botConnection,
user: { id: model.userId, Username: LoginUser,},
bot: { id: model.botId, name: model.botName },
resize: 'window',
speechOptions: speechOptions,
locale: 'en',
sendTypingIndicator: true
}, document.getElementById('BotChatElement'));
botConnection
.postActivity({
from: user,
name: 'requestWelcomeDialog',
type: 'event',
value: ''
})
.subscribe(function (id) {
console.log('"trigger …Run Code Online (Sandbox Code Playgroud) 我找不到有关文档的指南以使这成为可能。我尝试使用TurnContext.UpdateActivity,但出现错误。
我的代码:
IMessageActivity responseActivity = MessageFactory.Text("Test ctm");
responseActivity.Id = userProfile.messageToDelete;
responseActivity.Conversation = turnContext.Activity.Conversation;
responseActivity.ServiceUrl = turnContext.Activity.ServiceUrl;
//await turnContext.DeleteActivityAsync(userProfile.messageToDelete, cancellationToken: cancellationToken);
await turnContext.UpdateActivityAsync(responseActivity, cancellationToken);
Run Code Online (Sandbox Code Playgroud)
最后一行抛出异常:
Microsoft.Bot.Schema.ErrorResponseException:'操作返回无效状态代码'NotFound''
可能有什么问题?你能分享任何代码示例吗?
我试图让一些机器人样本在我的机器上工作
https://github.com/microsoft/BotBuilder-Samples。
我对这个特别感兴趣
https://github.com/microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/13.core-bot
当我运行机器人时,它没有连接到 Luis(请参阅下面的错误消息)。
然后我只需cmd "dotnet run"在正确的文件夹中运行代码。
这里是app.setting JSON。我使用订阅密钥作为 LuisAPIKey,应用 ID 作为 LuisAppId。
{
"MicrosoftAppId": "",
"MicrosoftAppPassword": "",
"LuisAppId": "2aa2b9c5-#######################7b557",
"LuisAPIKey": "1069d###############4347da9",
"LuisAPIHostName": "westus.api.cognitive.microsoft.com/luis/api/v2.0"
}
Run Code Online (Sandbox Code Playgroud)
该机器人正在我的本地主机上运行。但它不起作用。
bot : 今天有什么可以帮到你的吗?像这样说“预订 2020 年 3 月 22 日从巴黎飞往柏林的航班”
我:“请预订 2020 年 3 月 22 日从巴黎飞往柏林的航班”
bot :“机器人遇到错误或错误。”
bot :“要继续运行此机器人,请修复机器人源代码”
On the cmd line :
"fail: Microsoft.Bot.Builder.Integration.AspNet.Core.BotFrameworkHttpAdapter[0] …Run Code Online (Sandbox Code Playgroud) 我们正在使用 ms 团队和 ms 机器人构建产品集成。我们已经与 Slack 进行了现有的集成。在 slack World 中,我们通过 TEAM_ID 和 USER_ID 识别唯一用户。在 Teams 的情况下,我什至可以看到 from 节点中的 id 是一个很长的字符串,表明它是唯一的。以下有效负载是进入我们服务器的一个示例。有人可以确认使用来自 from 节点的 id 是否不会改变特定用户吗?
假设对以下用户不感兴趣的用户 ID 是“29:1374Bmi6ngJLBlF9oGVcDuTaBbMfJmcOF9eUvQVdx_rgYh5spPNQ5Mi6fLdVvCiT7mQPMNytT0zGk_iAUtvqKAwXXXX”
{
"_activity": {
"id": "1576102076169",
"from": {
"id": "29:1374Bmi6ngJLBlF9oGVcDuTaBbMfJmcOF9eUvQVdx_rgYh5spPNQ5Mi6fLdVvCiT7mQPMNytT0zGk_iAUtvqKAwXXXX",
"name": "My Name",
"aadObjectId": "37a2516a-baf2-41d8-a406-a067888d676c"
},
"conversation": {
"conversationType": "personal",
"tenantId": "9bfb3569-994e-4908-855c-c7f6c1a94100",
"id": "a:1DcGjCAgiuinvuzR0Mx6dR9uJOB3YUwjMdLOiGTAwQ7KWSGsiEijNfvir66ep7k0fABwoSXxCAACx2_3GflfTNIZL7XMkfjrMm0v8OzJJ7vvIFKasqrClrZ_T-8dDfdT0"
},
"channelData": {
"tenant": {
"id": "9bfb3569-994e-4908-855c-c7f6c1a94100"
}
},
"text": "contact mat",
"textFormat": "plain",
"type": "message",
"channelId": "msteams",
"serviceUrl": "https://smba.trafficmanager.net/amer/",
"recipient": {
"id": "28:a835cf1d-83a8-4ae9-845a-23a68a1df442",
"name": "FlashCX.ai"
}
}
}
Run Code Online (Sandbox Code Playgroud) 下面是我要返回的继续任务模块。当我直接在浏览器中点击 URL 时,该 URL 工作正常,但在团队中,我总是得到这个:
任务模块响应
handleTeamsTaskModuleFetch() {
return {
task: {
type: "continue",
value: {
title: "response",
url: `${process.env.HostName}/help.html`,
fallbackUrl: `${process.env.HostName}/help.html`,
width: 500,
height: 500
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
谁能看到我做错了什么?
干杯
注意:这就是我创建自适应卡的方式
const adaptiveCard = {
$schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
version: '1.0',
type: 'AdaptiveCard',
body: [{
type: 'TextBlock',
text: 'Task Module Invocation from Adaptive Card',
weight: 'bolder',
size: 3
}],
actions: [{
type: 'Action.Submit',
title: "TEST",
data: { msteams: { type: 'task/fetch'}, data: "meTask" }
}]
}
Run Code Online (Sandbox Code Playgroud) botframework ×10
bots ×2
.net-core ×1
azure ×1
azure-language-understanding ×1
c# ×1
chatbot ×1