Implantar o fulfillment (Dialogflow)

Depois de criar o fulfillment do webhook, implante-o em produção e conecte à ação. As etapas a seguir mostram como configurar o ambiente para implantar no Cloud Functions para Firebase de hospedagem de produção. No entanto, é possível escolher qualquer plataforma de hospedagem na Web compatível com solicitações e respostas HTTPS para hospedar o fulfillment.

Se você já tiver implantado o webhook em uma plataforma de hospedagem na Web, pule para Conectar o webhook à ação. As etapas finais do processo abaixo variam de acordo com o uso do Dialogflow ou do SDK do Actions.

Implantar no Cloud Functions para Firebase

  1. Faça o download e instale o Node.js.
  2. Configure e inicialize a CLI do Firebase. Se o comando a seguir falhar com um erro EACCES, talvez seja necessário alterar as permissões do NPM.

    npm install -g firebase-tools
    
  3. Autentique a ferramenta do Firebase com sua Conta do Google:

    firebase login
    
  4. Navegue até o diretório do projeto da Ação e inicialize o Firebase. Você vai precisar selecionar quais recursos da CLI do Firebase quer configurar no projeto do Actions. Escolha Functions e outros recursos que você talvez queira usar, como o Firestore. Em seguida, pressione Enter para confirmar e continuar:

    cd <cloud_function_dir>
    firebase init
    
  5. Associe a ferramenta do Firebase ao seu projeto do Actions selecionando-a usando as teclas de seta para navegar pela lista de projetos:

  6. Depois de escolher o projeto, a ferramenta do Firebase inicia a configuração do Functions perguntando qual idioma você quer usar. Selecione usando as teclas de seta e pressione Enter para continuar.

    === Functions Setup
    A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? (Use arrow keys) > JavaScript TypeScript
  7. Escolha se você quer usar o ESLint para detectar prováveis bugs e aplicar a digitação de estilo Y ou N:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. Para acessar as dependências do projeto, digite Y no prompt:

    ? Do you want to install dependencies with npm now? (Y/n)

    Quando a configuração for concluída, você verá uma resposta parecida com a seguinte:

    ✔  Firebase initialization complete!
  9. Instale a dependência actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. Consiga as dependências de fulfillment e implante a função de fulfillment:

    npm install
    firebase deploy --only functions
    

    A implantação leva alguns minutos. Depois de concluído, você verá uma saída semelhante à seguinte. Você precisará do URL da função para entrar no Dialogflow.

    ✔  Deploy complete!
    Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName

Conectar o webhook à ação

Se você estiver usando o Dialogflow: no console do Dialogflow, acesse Fulfillment, alterne o botão Webhook para ATIVADO e substitua o URL no campo URL pelo URL da função.

Se você estiver usando o SDK do Actions:crie um objeto dentro do objeto conversations para declarar o fulfillment no pacote de ações:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "myFulfillmentFunction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to myFulfillmentFunction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "myFulfillmentFunction": {
      "name": "myFulfillmentFunction",
      "url": "https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName"
    }
  },
  "locale": "en"
}