Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
389 lines (290 sloc) 11.2 KB

Dialogflow Gateway

Dialogflow Gateway is a backend enabling third-party integrations to securely access the Dialogflow V2 API. Any server, that implements the API (see below) can be refered as "Dialogflow Gateway"

Contents

API

Response Codes

HTTP-Code Reason
200 Request was successful
400 The request body or session ID is invalid and/or missing
403 The deployment was blocked or the service account key is no longer valid
404 The deployment was not found
500 Internal server error
503 The service is unavailable

Errors

Example JSON response, containing error

{"error": "Deployment was not found", "code": 404}

Endpoints

Base Endpoint

Single-Agent scenario

https://<PROJECT_ID>.com

Multi-Agent scenario using wildcard subdomain

https://<PROJECT_ID>.example.com

Multi-Agent scenario using path parameter

https://example.com/<PROJECT_ID>

Multi-Agent scenario using query parameter

https://example.com?agent=<PROJECT_ID>

Base Endpoint Variables

Variable Description
PROJECT_ID Required, Project Identifier

Base Endpoint Example

Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)

https://dialogflow-web-v2.gateway.dialogflow.cloud.ushakov.co

Requests

Retrieving Agents

Request

GET <BASE_ENDPOINT>

Request Variables

Variable Description
BASE_ENDPOINT Required, Endpoint of Agent

Response Body

Agent

Example Request

Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)

GET https://dialogflow-web-v2.gateway.dialogflow.cloud.ushakov.co

Example Response

{
  "parent": "projects/dialogflow-web-v2",
  "displayName": "DialogflowWebV2",
  "defaultLanguageCode": "en",
  "supportedLanguageCodes": [
    "ru"
  ],
  "timeZone": "Europe/Madrid",
  "description": "This is a unofficial Progressive Web Application for Dialogflow V2, with support for rich-responses and amazing features you need to check out. Choose your language and send Hello to get started",
  "avatarUri": "https://storage.googleapis.com/cloudprod-apiai/ce408f19-7966-487d-8614-f5b1f0474ba6_x.png",
  "enableLogging": true,
  "matchMode": "MATCH_MODE_HYBRID",
  "classificationThreshold": 0.3
}

Detecting Intents

Request

POST <BASE_ENDPOINT>

Request Variables

Variable Description
BASE_ENDPOINT Required, Endpoint of Agent

Request Body

DetectIntentRequest

Response Body

DetectIntentResponse

Example Request

Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)

POST https://app-of-the-day-9a9f6.gateway.dialogflow.cloud.ushakov.co
Content-Type: application/json

{
  "session": "test",
  "queryInput": {
    "text": {
      "text": "Hello",
      "languageCode": "en"
    }
  }
}

Example Response

{
  "responseId": "85c3d6bd-6f8c-4000-a1ec-fdd6f636b2e8",
  "queryResult": {
    "queryText": "Hello",
    "action": "input.welcome",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentText": "Cannot display response in Dialogflow simulator. Please test on the Google Assistant simulator instead.",
    "fulfillmentMessages": [...],
    "webhookPayload": {...},
    "intent": {
      "name": "projects/app-of-the-day-9a9f6/agent/intents/1e00bd68-62f0-4b8e-9cdd-a81c19f73855",
      "displayName": "Default Welcome Intent"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {
      "end_conversation": true,
      "webhook_latency_ms": 187
    },
    "languageCode": "en"
  },
  "webhookStatus": {
    "message": "Webhook execution successful"
  }
}

Realtime API

Realtime API implements Secure WebSocket communication between Dialogflow Gateway and the clients

Close Codes

Code Reason
4400 The request body or session ID is invalid and/or missing
4403 The deployment was blocked or the service account key is no longer valid
4404 The deployment was not found
4500 Internal server error

Errors

Example error:

4404 'Deployment was not found'

Endpoints

Base Endpoint

Single-Agent scenario

wss://<PROJECT_ID>.com

Multi-Agent scenario using wildcard subdomain

wss://<PROJECT_ID>.example.com

Multi-Agent scenario using path parameter

wss://example.com/<PROJECT_ID>

Multi-Agent scenario using query parameter

wss://example.com?agent=<PROJECT_ID>

Base Endpoint Variables

Variable Description
PROJECT_ID Required, Project Identifier

Base Endpoint Example

Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)

wss://dialogflow-web-v2.gateway.dialogflow.cloud.ushakov.co

Requests

Detecting Intents

Request

POST <BASE_ENDPOINT>

Request Variables

Variable Description
BASE_ENDPOINT Required, Endpoint of Agent

Request Body

DetectIntentRequest

Response Body

DetectIntentResponse

Example Request

Note: The examples are in js

Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)

const WebSocket = require('ws')
const ws = new WebSocket('ws://app-of-the-day-9a9f6.gateway.dialogflow.cloud.ushakov.co')

ws.send(
  JSON.stringify({
    session: "123",
    queryInput: {
      text: {
        text: "Hello",
        languageCode: "en"
      }
    }
  })
)

ws.on('message', data => {
  console.log(data)
})

ws.on('close', (code, error) => {
  console.log(code, error)
})

Example Response

{
  "responseId": "85c3d6bd-6f8c-4000-a1ec-fdd6f636b2e8",
  "queryResult": {
    "queryText": "Hello",
    "action": "input.welcome",
    "parameters": {},
    "allRequiredParamsPresent": true,
    "fulfillmentText": "Cannot display response in Dialogflow simulator. Please test on the Google Assistant simulator instead.",
    "fulfillmentMessages": [...],
    "webhookPayload": {...},
    "intent": {
      "name": "projects/app-of-the-day-9a9f6/agent/intents/1e00bd68-62f0-4b8e-9cdd-a81c19f73855",
      "displayName": "Default Welcome Intent"
    },
    "intentDetectionConfidence": 1,
    "diagnosticInfo": {
      "end_conversation": true,
      "webhook_latency_ms": 187
    },
    "languageCode": "en"
  },
  "webhookStatus": {
    "message": "Webhook execution successful"
  }
}

Implementations

Title Developer Status Homepage Features Cloud-based?
Dialogflow Gateway (Hosted) Ushakov Stable, actively maintained https://dialogflow.cloud.ushakov.co Security Features, API Extensions, Realtime API, support, free updates, uptime guarantees, disaster recovery, dashboard, built-in integrations, pay-per-use, free quota Yes
Dialogflow Gateway (Enterprise Edition) Ushakov TBA https://dialogflow.cloud.ushakov.co Self-hosted, premium support, API Extensions, free updates No
Fulfillment Tester Ushakov Testing https://github.com/mishushakov/dialogflow-fulfillment-tester For testing purposes only No

Submit your implementation

Contact

If you have any questions/troubles, regarding the API, please contact us

You can’t perform that action at this time.