0

我是 ActionSDK 的新手,我使用 Action SDK 创建了一个项目。我的操作是作为 Web 服务部署在 Azure 中的。

我正在更新我的操作:

gactions 更新 --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} 目前没有响应。请稍后再试。

每当我使用上面的命令进行更新时,我都会在我的网络服务中看到一个请求。但是当我尝试在模拟器中测试该操作时,我没有看到任何请求。

如果有人能指出我正确的方向。在继续之前指出我最能获得的任何知识。我还有更多信息需要提供,让我知道并感谢。

4

2 回答 2

0

抱歉,我没有足够的评论点,但我们目前遇到中断,如果您受到影响,您可以在此处查看https://azure.microsoft.com/en-us/status/

在此处输入图像描述

您将需要监视 Azure 状态页面以获取进一步的更新。不幸的是,在问题通过工程解决之前,我们无法做任何事情。

于 2018-09-04T17:41:35.350 回答
0

有几个潜在的问题:

首先 - 您没有显示您的 package.json 文件,但代码表明您使用的是旧版本的 actions-on-google 库。所以代码本身可能没有运行。检查您的运行时日志以确保它是。

接下来,您已指定它应侦听端口 7001,但您在 actions.json 文件中提供的 URL 不包含端口号。如果这是它运行的主机和端口,并且您没有提供某种代理,那么您需要将 URL 指定为https://dialogflowappnc.azurewebsites.net:7001/

此外,如果您在端口 7001 上运行,您可能还没有打开防火墙来访问它。

但您似乎正在运行代理(或者您应该),因为您还需要提供具有有效 SSL 证书的有效 HTTPS 连接。如果这是自签名证书,则连接可能仍会被拒绝。

于 2018-09-05T13:39:45.447 回答