Skip to content

Latest commit

 

History

History
52 lines (38 loc) · 1.33 KB

PROXY.md

File metadata and controls

52 lines (38 loc) · 1.33 KB

Proxy Example

It's important to protect your WVA Client ID and Client Secret Key to prevent unwanted charges and modification. This example allows you to keep them server-side.

###Node.js

Installation

This example uses Express and request, install them in your project.

npm install express --save
npm install request --save

Server

This creates a simple Express server that forwards any request to the local /WVA/ route to the IBM endpoint and returns the response.

var express = require('express');
var request = require('request');

var app = express();

app.use(express.static('public'));

var options = {
    url: '',
    headers: {
        'X-IBM-Client-Id': 'YOUR_CLIENT_ID',
        'X-IBM-Client-Secret': 'YOUR_CLIENT_SECRET'
    }
};

app.all('/wva/*', function(req, res) {
    options.url = 'https://api.ibm.com/virtualagent/run/api/v1' + req.url.replace('/wva', '');
    req.pipe(request.post(options)).pipe(res);
});

app.listen(process.env.PORT || 3000);

Client

Remove XIBMClientID and XIBMClientSecret, if you're using them in client-side pages. The widget init call can be as simple as:

IBMChat.init({
        el: 'ibm_chat_root',
        botID: 'YOUR_BOT_ID',
        baseURL: 'http://localhost:3000/wva/'
    });