सेवेपर्यंत पोहोचण्यापूर्वी Watson कॉल अयशस्वी झाल्यास, अयशस्वी विनंती IAM टोकन विनंती आहे का ते तपासा. IAM ने प्रमाणित केलेला कॉल आधी IAM शी आणि नंतर सेवेशी संपर्क साधू शकतो.

संबंधित Watson SDK आणि tunnel डिपेंडन्सी आधीच वापरणाऱ्या ॲप्लिकेशनमध्ये, दोन्ही ऑब्जेक्टना तीच नेटवर्क सेटिंग्ज द्या:

const tunnel = require('tunnel');
const AssistantV2 = require('ibm-watson/assistant/v2');
const { IamAuthenticator } = require('ibm-watson/auth');

const httpsAgent = tunnel.httpsOverHttp({
  proxy: { host: 'proxy.example', port: 8080 },
});

const network = { httpsAgent, proxy: false };
const authenticator = new IamAuthenticator({
  apikey: apiKey,
  ...network,
});
const assistant = new AssistantV2({
  version: serviceVersion,
  serviceUrl,
  authenticator,
  ...network,
});

ॲप्लिकेशनची विद्यमान apiKey, serviceVersion आणि serviceUrl तशीच ठेवा. API आणि IAM एंडपॉइंट हे त्यांचे इच्छित गंतव्य राहतात; प्रॉक्सी लिसनर एजंटमध्ये असतो. HTTP प्रॉक्सी यादीतून तुम्ही निवडलेल्या प्रॉक्सीद्वारे दोन्ही सार्वजनिक सेवा एंडपॉइंटपर्यंत पोहोचता येत असल्यास उमेदवार पत्ते मिळू शकतात.

tunnel.httpsOverHttp HTTP प्रॉक्सीद्वारे HTTPS मार्ग स्थापित करते. proxy: false SDK ला त्या सानुकूल एजंटवर आणखी एक अंगभूत प्रॉक्सी कॉन्फिगरेशन लागू करण्यापासून प्रतिबंधित करते.

जर तुम्ही पूर्वी ही सेटिंग्ज फक्त assistant ला दिली असतील, तर authenticator ही तपासायची गहाळ जागा आहे. Basic authentication आणि आधीच जारी केलेल्या bearer token ची टोकन मिळवण्याची चक्रे वेगळी असतात, म्हणून हा अतिरिक्त IAM मार्ग येथे वापरल्या जाणाऱ्या नेटवर्क-आधारित authenticator ला लागू होतो.

संबंधित लेख