Действие SDK не работает

Я обновил свой index.js, как показано ниже

'use strict';
const functions = require('firebase-functions');
const admin     = require('firebase-admin');
const {actionssdk} = require('actions-on-google');
const app = actionssdk({debug: true});


 exports.dairyProduct = functions.https.onRequest((request, response) => {
    console.log("request-------------->",request);
    console.log("response----------------->",response);

    function handleMainIntent(app) {
        console.log("Inside Main Intent");
        app.ask("Main Indent "+app.getRawInput());
     }
    function handleTextIntent() {
        console.log("Inside Main Intent");
        app.tell("First Text Indent");
    }
    let app = new ActionsSdkApp({request, response});
    let actionMap = new Map();
    console.log("app---------->",app);
    actionMap.set(app.StandardIntents.MAIN, handleMainIntent)
    actionMap.set(app.StandardIntents.TEXT, handleTextIntent);
    app.ask("This sample application is developing by Thirumani Selvam.M ");
    console.log("actionMap---------->",actionMap);
    app.handleRequest(actionMap);
 });

Мой обновленный action.json

    {
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "testapp"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "Talk to Dairy Product"
          ]
        }
      }
    }
  ],
  "conversations": {
    "testapp": {
      "name": "testapp",
      "url": "https://us-central1-samplejs6-id.cloudfunctions.net/dairyProduct",
      "fulfillmentApiVersion": 2,
      "inDialogIntents": [
        {
          "name": "actions.intent.CANCEL"
        }
      ]
    }
  },
  "locale": "en"
}

Мой код package.json

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase serve --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "dependencies": {
    "actions-on-google": "^2.0.1",
    "firebase-admin": "~5.12.0",
    "firebase-functions": "^1.0.1"
  },
  "devDependencies": {
    "eslint": "^4.12.0",
    "eslint-plugin-promise": "^3.6.0"
  },
  "private": true
}

Я развернул с помощью "firebase deploy - only functions". Я обновил действие, используя "gactions update --action_package action.json --project samplejs6-id". Я обновил тест действий, используя "gactions test --action_package action.json - -project samplejs6-id "

Я не получил ошибок в журналах Firebase. Я изменил название и имя в группировках как "Молочная команда". Рекомендую набрать "Поговорить с молочной командой". Если я ввожу команду "Поговори с молочной командой", я получаю ответ: "Извините, но что-то пошло не так. Пожалуйста, попробуйте еще раз".

Пожалуйста, дайте мне знать, как решить эту проблему. заранее спасибо

1 ответ

Решение

Проблема в том, что вы используете библиотеку "Actions-on-Google" версии 2, но ваш код написан с использованием объектов и функций версии 1. Там были некоторые драматические изменения между двумя версиями. Обратитесь к руководству по миграции за подробной информацией о том, как перейти на новую версию или изменить файл package.json для использования версии 1.

Другие вопросы по тегам