203 Lotus blogs updated hourly. Who will post next? Home | Blogs | Search | About 
 
Latest 7 Posts
Building Facebook Messenger Bots with Botkit and Watson
Thu, Nov 16th 2017 38
Creating Alexa Skills with OpenWhisk and IBM Watson
Thu, Nov 16th 2017 34
Integrating Applications without writing Code
Tue, Nov 14th 2017 128
Pictures from W-JAX 2017
Fri, Nov 10th 2017 43
Using regular Expressions for Entities in Conversations
Fri, Nov 3rd 2017 8
My Favorite IBM Developer Journeys
Wed, Oct 18th 2017 5
Fast On-Ramp for building Cloud-Native Apps
Tue, Oct 17th 2017 5
Top 10
Integrating Applications without writing Code
Tue, Nov 14th 2017 128
Pictures from W-JAX 2017
Fri, Nov 10th 2017 43
Building Facebook Messenger Bots with Botkit and Watson
Thu, Nov 16th 2017 38
Creating Alexa Skills with OpenWhisk and IBM Watson
Thu, Nov 16th 2017 34
Deploying Angular 2 Apps to Bluemix
Tue, Apr 11th 2017 27
Getting started with Tensorflow on IBM Bluemix
Mon, Apr 3rd 2017 14
How to build Facebook Chatbots with IBM Watson
Thu, May 12th 2016 13
Running the Sample App BlueChatter on Kubernetes
Mon, Apr 10th 2017 12
New Slots Filling Functionality in Watson Conversation
Fri, Jun 23rd 2017 12
How to write AngularJS Frontends for LoopBack Applications
Mon, Feb 29th 2016 11


Accessing Bluemix Services from Client-side Web Applications
Twitter Google+ Facebook LinkedIn Addthis Email Gmail Flipboard Reddit Tumblr WhatsApp StumbleUpon Yammer Evernote Delicious
Niklas Heidloff    

Bluemix is IBM’s cloud platform to build and host applications which can leverage more than 100 services, for example databases and cognitive services. The services provide APIs which require credentials. Applications which are hosted on Bluemix as Cloud Foundry apps or Docker containers can access these credentials from environment variables. This article describes how to invoke Bluemix services from client-side web applications.

Recently I described how to deploy Angular and other client-side web applications (for example React or Vue.js) to Bluemix via Docker and nginx. In order to allow web applications to invoke REST APIs, nginx acts as a proxy which can be configured in the nginx.conf file.

I couldn’t figure out how to configure/extend the nginx proxy to access the credentials from environment variables. That’s why I replaced nginx with a web server built with Node.js and the Express framework.

There are various proxy server implementations for Express available or you can write a simple proxy yourself. The following code shows a proxy for get requests which reads credentials of the Watson Conversation service and adds them to the request.

router.get('*', (req, res) => {
  var vcapCredentials = readCredentials();
  var credentials = req.get('Authorization');
  if (vcapCredentials.username && vcapCredentials.password) {
    credentials = "Basic " + new Buffer(vcapCredentials.username + ':' + vcapCredentials.password).toString('base64');
  }
  var url = 'https://gateway.watsonplatform.net/conversation' + req.url;
  var newRequest = request.get({
    uri: url,
    headers: {
      'Content-Type': 'application/json',
      'Authorization': credentials
    }
  });
  newRequest.pipe(res);
});

The full source code of the sample application is available on GitHub.

The screenshot shows the requests from the web application to the Node.js backend. With ‘/credentials‘ the web application checks whether the credentials exist which is the case when a Watson Conversation service has been bound to the Node.js application. If they exist, the two input fields for username and password are disabled. The ‘/conversation/api/v1/workspaces‘ request invokes the proxy.

node-proxy

The post Accessing Bluemix Services from Client-side Web Applications appeared first on Niklas Heidloff.



---------------------
http://heidloff.net/article/bluemix-services-credentials-client-side-web-applications
Aug 07, 2017
5 hits



Recent Blog Posts
38
Building Facebook Messenger Bots with Botkit and Watson
Thu, Nov 16th 2017 10:54a   Niklas Heidloff
I’ve implemented a sample Facebook Messenger bot which leverages the Node.js library Botkit and IBM Watson Conversation. With Botkit you can build bots for Slack, Facebook Messenger, Twilio and other messaging clients. For natural language understanding different services can be used, for example IBM Watson, Api.ai, Wit.ai or Rasa. Most of the code can be shared for Slack and Facebook Messenger bots. Check out the code on GitHub. Similarly to my sample Slack bot, the Facebook Messenger bo
34
Creating Alexa Skills with OpenWhisk and IBM Watson
Thu, Nov 16th 2017 8:43a   Niklas Heidloff
My first code pattern (formerly known as developer journeys) has been published on developer.ibm.com/code. The pattern describes how to build Alexa skills with OpenWhisk. Rather than using intent and entity identification from Alexa, Watson Conversation is used. This allows developers to define conversation flows declaratively and developers can reuse conversations that are available in the Bot Asset Exchange. My colleague Mark Sturdevant improved the documentation and created a video. Check out
128
Integrating Applications without writing Code
Tue, Nov 14th 2017 2:52p   Niklas Heidloff
IBM App Connect is an IPaaS (Integration Platform as a Service) to connect different applications without having to write code. Similarly to IFTTT users are typically business users or citizen developers from line of business departments. App Connect provides currently roughly 50 connectors to integrate applications like Salesforce, SAP, Slack and Gmail. See the documentation for details. Users can graphically build flows that are either event-triggered, for example if a document is changed in a
43
Pictures from W-JAX 2017
Fri, Nov 10th 2017 10:32a   Niklas Heidloff
This week I attended W-JAX in Munich, Germany, which is a developer conference with 1400 attendees with a focus on Java and enterprise technologies. My colleagues and I presented and demonstrated the IBM Cloud and the IBM Code developer site. Below are some pictures. The IBM team: Discussions with developers at the booth: I gave a session about Slack bots and IBM Watson Conversation: One thing I really liked was a demo another company gave at their booth. They connected Anki Overdrive cars to
8
Using regular Expressions for Entities in Conversations
Fri, Nov 3rd 2017 8:06a   Niklas Heidloff
In conversational experiences entities are used to identify classes of objects in user phrases, for example ‘city’ or ‘person’. Watson Conversation supports entity definitions with predefined lists of potential values and synonyms. Recently a new capability has been added so that you can also use regular expressions to identify entities (beta). This functionality is useful when, for example, you want to identify email addresses, phone numbers or URLs without predefining a
5
My Favorite IBM Developer Journeys
Wed, Oct 18th 2017 3:12p   Niklas Heidloff
The team of developer advocates within IBM has created a new site with journeys for developers. Journeys are sample scenarios that are available as open source, well documented and easy to reuse and deploy. There are roughly 60 journeys right now and new ones are published regularly. Check out the journeys at developer.ibm.com/code/journey. Here are my favorite journeys: Make Java microservices resilient with Istio “Twelve-factor apps make a strong case for designing and implementing you
5
Fast On-Ramp for building Cloud-Native Apps
Tue, Oct 17th 2017 9:32a   Niklas Heidloff
In order for developers to get started quickly to build applications and deploy them on the IBM Cloud, new starter kits have been made available. Check out the new IBM Cloud App Service. You can choose from several template the type of application or microservice you want to build: Express.js Backend, Express.js React, Java MicroProfile, Java Spring Backend, Swift Kitura, Python Microservice and more. Additionally you can create new or select existing IBM Cloud services, for example the Watson s
3
How to write your own Slack Chatbots in Javascript
Mon, Oct 16th 2017 2:54p   Niklas Heidloff
Last week Ansgar Schmidt and I gave a session at Codemotion How to write your own Slack Chatbots in Javascript. Below are the slides with screenshots of our demos. We demonstrated how to write a Node.js application that uses Botkit to connect with Slack and that uses IBM Watson Conversation as natural language processing service. Get the code of our sample from GitHub. The post How to write your own Slack Chatbots in Javascript appeared first on Niklas Heidloff.
6
Composing Serverless Apps with IBM Cloud Functions
Tue, Oct 10th 2017 8:13p   Niklas Heidloff
Today at Serverlessconf IBM announced a new key capability (as IBM Research preview) of IBM Cloud Functions. With the new tool ‘Composer‘ apps can be created which contain multiple cloud functions. These apps coordinate the invocations of actions and the data flow. Compared to the previously available action sequences the new functionality is much more flexible. Cloud functions are typically rather simple and focussed on specific tasks which is why people often refer to cloud functio
4
Testing Watson Conversations in Slack
Thu, Oct 5th 2017 7:03a   Niklas Heidloff
Next week Ansgar Schmidt and I will give a session ‘How to write your own Slack Chatbots in Javascript‘ at codemotion. We will demonstrate how to connect Slack to Watson Conversation via the open source project botkit which leverages the Slack Real Time Messaging API. This works well for production bots, but requires some configuration first. For testing purposes there is an easier way to create a Slack app with a bot user and to add this to a Slack team. From the ‘Deploy’




Created and Maintained by Yancy Lent - About - Planet Lotus Blog - Advertising - Mobile Edition