我是ActionSDK的新手,我使用Action SDK创建了一个项目。 我的操作的完成是作为Web服务部署在Azure中。
我正在使用以下方法更新我的操作:
gactions更新--action_package action.json-项目“ 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.")
})
每当我在模拟器中测试时,响应为:
{动作名称}目前没有响应。请稍后重试。
每当我使用上面的命令进行更新时,我都会在Web服务中看到一个请求。但是,当我尝试在模拟器中测试操作时,我看不到任何请求。
如果有人可以指出我正确的方向。在继续之前,请指出我最了解的知识。我需要提供更多信息,让我知道并感谢。
答案 0 :(得分:0)
抱歉,我没有足够的意见要发表,但是我们目前正在中断,如果您受到影响https://azure.microsoft.com/en-us/status/
,可以在这里查看您将要监视Azure状态页以获取进一步的更新。不幸的是,在工程解决问题之前,我们无法采取任何措施。
答案 1 :(得分:0)
有两个潜在问题:
首先-您没有显示package.json文件,但是代码表明您使用的是Google Actions库的旧版本。因此,代码本身可能未运行。检查您的运行时日志以确保它是正确的。
接下来,您已指定它应该在端口7001上进行侦听,但是在actions.json文件中提供的URL不包含端口号。如果那是运行它的主机和端口,并且您未提供某种代理,则需要将URL指定为{{1}}
此外,如果您在端口7001上运行,则可能还没有打开防火墙来访问它。
但是您似乎正在运行代理(或者应该运行代理),因为您还需要提供带有有效SSL证书的有效HTTPS连接。如果这是自签名证书,则连接仍可能被拒绝。