我是ActionSDK的新手,我用Action SDK创建了一个项目。我的操作的实现是在Azure中作为Web服务部署。
我正在更新我的行动:
gactions update --action_package action.json --project“projectID”
话虽这么说,更新是成功的。
这是我的action.json:
{
"actions": [
{
"name": "MAIN",
"intent": {
"name": "actions.intent.MAIN",
"trigger": {
"queryPatterns": [
"talk to Conduent Helper",
"Talk to conduent help"
]
}
},
"fulfillment": {
"conversationName": "conduentHelpTest"
}
}
],
"conversations": {
"conduentHelpApp": {
"name": "conduentHelpTest",
"url": "https://dialogflowappnc.azurewebsites.net",
"fulfillmentApiVersion": 2
}
}
}
这是我在尝试自己之后找到的履行代码,并且没有成功:
'use strict';
var express = require('express');
var bodyParser = require('body-parser');
var exps = express();
const ApiAiApp = require('actions-on-google').ApiAiApp;
exps.use(bodyParser.json());
// API.AI actions
const WELCOME_ACTION = 'input.welcome';
exps.post('/', function(request, response) {
console.log("hello World");
const app = new ApiAiApp({request, response});
function greetUser (app) {
app.tell("Hello World!");
}
let actionMap = new Map();
actionMap.set(WELCOME_ACTION, greetUser);
app.handleRequest(actionMap);
});
exps.listen((process.env.PORT || 7001), function() {
console.log("App up and running, listening.")
})
每当我在模拟器中测试时,响应是:
{Action name}现在没有响应。请尽快重试。
每当我使用上面的命令进行更新时,我会在我的Web服务中看到一个请求。但是当我尝试在模拟器中测试动作时,我看不到任何请求。
如果有人能指出我正确的方向。在继续之前指出我获得的任何知识。我需要提供更多信息让我知道并感谢。
对不起,我没有足够的评论,但我们目前正在经历停电,如果你受到影响,你可以在这里看到https://azure.microsoft.com/en-us/status/
您将需要监视Azure状态页以获取进一步的更新。不幸的是,在工程减轻问题之前我们无能为力。
有几个潜在的问题:
首先 - 您尚未显示您的package.json文件,但代码建议您使用较旧版本的actions-on-google库。所以代码本身可能没有运行。检查运行时日志以确保它是。
接下来,您已指定它应该在端口7001上侦听,但您在actions.json文件中提供的URL不包括端口号。如果这是它运行的主机和端口,并且您没有提供某种类型的代理,那么您需要将URL指定为https://dialogflowappnc.azurewebsites.net:7001/
此外,如果您在端口7001上运行,您可能还没有打开防火墙来访问它。
但是,您似乎可能正在运行代理(或者您应该),因为您还需要提供具有有效SSL证书的有效HTTPS连接。如果这是自签名证书,则仍可能拒绝连接。