ਜਦੋਂ ਸੇਵਾ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ 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 ਲਈ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ