На самом деле есть код , который демонстрирует, как настроить ключ API для IBM Cloud Functions и передать его в качестве переменной контекста в Watson Assistant . Он использует метод before
для добавления ключа API в переменную контекста. Значение настраивается в отдельном файле вместе с другими учетными данными, связанными с приложением. Код проверяет, существует ли переменная контекста и ключ, в противном случае он добавляется:
middleware.before = function(message, conversationPayload, callback) {
// Code here gets executed before making the call to Conversation.
// retrieve API Key from environment and split it into user / password
var arr=process.env.ICF_KEY.split(":");
// check if context exists
if (typeof(conversationPayload.context) === 'undefined') {
var context={context: {}}
Object.assign(conversationPayload, context);
}
// if credentials already exists, we don't have to add them
// else add credentials under private element in context
if (typeof(conversationPayload.context.icfcreds) === 'undefined') {
var privcontext = {"private": {icfcreds: {user: arr[0], password: arr[1]}}};
Object.assign(conversationPayload.context, privcontext);
}
// log the payload structure for debugging
// console.log(conversationPayload)
callback(null, conversationPayload);
}