Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/dialogflow/dialogflow-javascript-client
- Owner: dialogflow
- License: apache-2.0
- Created: 2015-06-17T17:21:17.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2019-02-20T18:55:46.000Z (almost 6 years ago)
- Last Synced: 2024-05-13T06:03:10.281Z (8 months ago)
- Topics: apiai, javascript, natural-language-processing, nlp, nlu, sdk, typescript
- Language: TypeScript
- Homepage:
- Size: 5.43 MB
- Stars: 413
- Watchers: 43
- Forks: 174
- Open Issues: 59
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
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.