https://github.com/mishushakov/dialogflow-gateway-docs
📄 Docs for Dialogflow Gateway
https://github.com/mishushakov/dialogflow-gateway-docs
dialogflow documentation
Last synced: 5 months ago
JSON representation
📄 Docs for Dialogflow Gateway
- Host: GitHub
- URL: https://github.com/mishushakov/dialogflow-gateway-docs
- Owner: mishushakov
- License: other
- Created: 2019-04-15T12:29:29.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-08-19T12:02:46.000Z (almost 4 years ago)
- Last Synced: 2025-03-24T11:22:19.006Z (about 1 year ago)
- Topics: dialogflow, documentation
- Homepage: https://dialogflow.cloud.ushakov.co
- Size: 13.4 MB
- Stars: 22
- Watchers: 2
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# 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](#api)
- [Response Codes](#response-codes)
- [Errors](#errors)
- [Endpoints](#endpoints)
- [Base Endpoint](#base-endpoint)
- [Base Endpoint Variables](#base-endpoint-variables)
- [Base Endpoint Example](#base-endpoint-example)
- [Requests](#requests)
- [Retrieving Agents](#retrieving-agents)
- [Request](#request)
- [Request Variables](#request-variables)
- [Response Body](#response-body)
- [Example Request](#example-request)
- [Example Response](#example-response)
- [Detecting Intents](#detecting-intents)
- [Request](#request-1)
- [Request Variables](#request-variables-1)
- [Request Body](#request-body)
- [Response Body](#response-body-1)
- [Example Request](#example-request-1)
- [Example Response](#example-response-1)
- [Realtime API](#realtime-api)
- [Close Codes](#close-codes)
- [Errors](#errors-1)
- [Endpoints](#endpoints)
- [Base Endpoint](#base-endpoint-1)
- [Base Endpoint Variables](#base-endpoint-variables-1)
- [Base Endpoint Example](#base-endpoint-example-1)
- [Requests](#requests-1)
- [Detecting Intents](#detecting-intents-1)
- [Request](#request-2)
- [Request Variables](#request-variables-2)
- [Request Body](#request-body-1)
- [Response Body](#response-body-2)
- [Example Request](#example-request-2)
- [Example Response](#example-response-2)
- [Implementations](#implementations)
- [Contact](#contact)
## 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
```json
{"error": "Deployment was not found", "code": 404}
```
### Endpoints
#### Base Endpoint
Single-Agent scenario
```
https://.com
```
Multi-Agent scenario using wildcard subdomain
```
https://.example.com
```
Multi-Agent scenario using path parameter
```
https://example.com/
```
Multi-Agent scenario using query parameter
```
https://example.com?agent=
```
#### 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
```http
GET
```
#### Request Variables
| Variable | Description |
|---------------|-----------------------------|
| BASE_ENDPOINT | Required, Endpoint of Agent |
#### Response Body
[Agent](https://cloud.google.com/dialogflow/docs/reference/rest/v2beta1/projects.agent)
#### Example Request
Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)
```http
GET https://dialogflow-web-v2.gateway.dialogflow.cloud.ushakov.co
```
#### Example Response
```json
{
"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
```http
POST
```
#### Request Variables
| Variable | Description |
|----------|-------------|
| BASE_ENDPOINT | Required, Endpoint of Agent |
#### Request Body
[DetectIntentRequest](https://cloud.google.com/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest)
#### Response Body
[DetectIntentResponse](https://cloud.google.com/dialogflow/docs/reference/rest/v2beta1/DetectIntentResponse)
#### Example Request
Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)
```http
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
```json
{
"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](https://en.wikipedia.org/wiki/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://.com
```
Multi-Agent scenario using wildcard subdomain
```
wss://.example.com
```
Multi-Agent scenario using path parameter
```
wss://example.com/
```
Multi-Agent scenario using query parameter
```
wss://example.com?agent=
```
#### 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
```http
POST
```
#### Request Variables
| Variable | Description |
|----------|-------------|
| BASE_ENDPOINT | Required, Endpoint of Agent |
#### Request Body
[DetectIntentRequest](https://cloud.google.com/dialogflow/docs/reference/rpc/google.cloud.dialogflow.v2#google.cloud.dialogflow.v2.DetectIntentRequest)
#### Response Body
[DetectIntentResponse](https://cloud.google.com/dialogflow/docs/reference/rest/v2beta1/DetectIntentResponse)
#### Example Request
Note: The examples are using NodeJS
Multi-Agent scenario using wildcard subdomain on Dialogflow Gateway by Ushakov (Hosted)
```js
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
```json
{
"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 | 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, free updates | No |
| Fulfillment Tester | Ushakov | Testing | https://github.com/mishushakov/dialogflow-fulfillment-tester | For testing purposes only | No |
[Submit your implementation](https://github.com/mishushakov/dialogflow-gateway-docs/pulls)
## Contact
If you have any questions or troubles regarding the API, please [contact us](https://ushakov.co/#contact)