Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dialogflow/dialogflow-javascript-client

JavaScript Web SDK for Dialogflow
https://github.com/dialogflow/dialogflow-javascript-client

apiai javascript natural-language-processing nlp nlu sdk typescript

Last synced: 7 days ago
JSON representation

JavaScript Web SDK for Dialogflow

Awesome Lists containing this project

README

        

# DEPRECATED

| Deprecated |
|-------|
| This Dialogflow client library and Dialogflow API V1 [have been deprecated and will be shut down on October 23th, 2019](https://blog.dialogflow.com/post/migrate-to-dialogflow-api-v2/). Please [migrate to Dialogflow API V2](https://cloud.google.com/dialogflow-enterprise/docs/migrating). |

You can use this library as common pre-built .js ([choose there](target)).

Or you can install it with nodejs and that import as es6 (or .ts) module. See below.

`npm install [email protected]`

# Usage

## .textRequest

```javascript

const client = new ApiAi.ApiAiClient({accessToken: 'YOUR_ACCESS_TOKEN'});
const promise = client.textRequest(longTextRequest);

promise
.then(handleResponse)
.catch(handleError);

function handleResponse(serverResponse) {
console.log(serverResponse);
}
function handleError(serverError) {
console.log(serverError);
}

```

## .eventRequest

```javascript
const promise = client.eventRequest("EVENT_NAME", options);
```

# TypeScript and ES6

This SDK written with Typescript and all it's sources are available in this package. So basically if you are using something like *webpack* or *browserify* with ES6 imports and so on, you can just install this SDK with `$ npm install api-ai-javascript --save-dev` command and then import original sources with something like:

```javascript

import {ApiAiClient} from "api-ai-javascript";

const client = new ApiAiClient({accessToken: 'YOUR_ACCESS_TOKEN'})

.textRequest('Hello!')
.then((response) => {/* do something */})
.catch((error) => {/* do something here too */})

```

*Note:* If you are going to build es5 version of your bundle with ApiAiClient inside, please add some typings for promises (e.g. @types/es6-promise)

You also can import and use all defined interfaces and ApiAiConstants:

```javascript
import {IRequestOptions, IServerResponse, ApiAiConstants} from "api-ai-javascript/ApiAiClient"
const lang = ApiAiConstants.AVAILABLE_LANGUAGES.EN;
```

You can find full list of interfaces [here](ts/Interfaces.ts)

# Development

* Checkout from this repository, do not forget to switch to "v2" branch
* run `$ npm install`
* run `$ webpack -w` or just `$ npm start` (as an option for non globally installed dev-server - `$ ./node_modules/.bin/webpack-dev-server`)
* develop! (webpack will automatically compile SDK to ./target/ApiAi.js file on each change, just include it into some test HTML file (./demo/index.html will probably do the job) and test it).

# Building

`$ npm run-script build` command will build everything

# Testing

`$ npm test`

## Changelog

## 2.0.0-beta.21
* tts and asr support removed (discontinued on API.AI side)
## 2.0.0-beta.19
* minor typings changes
## 2.0.0-beta.18
* some minor typings changes
## 2.0.0-beta.17
* dependencies updated
* webrtc typings removed (now part of typescript default lib)
## 2.0.0-beta.16
* some linting (ionic2 compatibility issues)
## 2.0.0-beta.15
* minor fixes, minor readme updates
* exported constants
## 2.0.0-beta.14
* minor fixes
* GainNode removed (for now) as non-working in current setup
## 2.0.0-beta.13
* IStreamClient is aligned with StreamClient needs, thanks to @muuki88 (#26)
* Callbacks in IStremClientOptions are now typed properly
* Added IStreamClient.getGain(): GainNode (#25) to allow set up gain of listener
* Fixed UTF8 requests, thanks to @elaval (#24)
## 2.0.0-beta.12
* Possibility to import ApiAiClient separately from ApiAiStreamClient
* Typescript project demo setup added
## 2.0.0-beta.8
### Breaking changes:
* Main class renamed from Client to ApiAiClient
* StreamClient renamed (in exports at least) to ApiAiStreamClient
* StreamClient class is no longer available inside main ApiAiClient class and now should be passed directly in ApiAiClient constructor: `const client = new ApiAiClient("ACCESS_TOKEN", {streamClientClass: ApiAiStreamClient})`.That was made to allow building your applications without streamclient at all (streamclient now takes about 70% of whole library). And also there will be other implementation of streamClient in the future
### Non-breaking changes:
* Demo updated

## How to make contributions?
Please read and follow the steps in the [CONTRIBUTING.md](CONTRIBUTING.md).

## License
See [LICENSE](LICENSE).

## Terms
Your use of this sample is subject to, and by using or downloading the sample files you agree to comply with, the [Google APIs Terms of Service](https://developers.google.com/terms/).

This is not an official Google product.