Получение «Аутентификатор ошибки должен быть установлен» при вызове AuthorizationV1 для получения токена преобразования речи в текст - PullRequest
0 голосов
/ 04 ноября 2019

Рабочий узел v10 ibm-watson v5.1.0

Ошибка при попытке получить токен для преобразования речи в текст.

#

{"message":«Аутентификатор должен быть установлен.», «Имя»: «Ошибка», «стек»: «Ошибка: Аутентификатор должен быть установлен. \ N в AuthorizationV1.BaseService (/ nodejsAction / VuncPM95 / node_modules / ibm-cloud-sdk-core /lib / base-service.js: 66: 19) \ n при новой авторизацииV1 (/nodejsAction/VuncPM95/node_modules/ibm-watson/authorization/v1.js:44:28)\n в Object.token (/ nodejsAction / VuncPM95)/services/stt.js:17:32)\n в текстовом выражении (/nodejsAction/VuncPM95/index.js:42:54)\n в Object.exec (/nodejsAction/VuncPM95/index.js:33: 73) \ n в Promise (/nodejsAction/VuncPM95/index.js:10:16)\n в новом Promise () \ n в NodeActionRunner.main [as userScriptMain] (/nodejsAction/VuncPM95/index.js:9:12) \ n в Promise (/nodejsAction/runner.js:73:35)\n в новом Promise () "}

#

При попытке с машинописью 3.6.4

#

{"message": "Аутентификатор должен быть установлен.", "имя ":" Ошибка "," стек ":" Ошибка: должен быть установлен аутентификатор. \ n в te (eval at initializeActionHandler (/nodejsAction/runner.js:57:23),: 22: 45665) \ n при новом t(eval at initializeActionHandler (/nodejsAction/runner.js:57:23),: 16: 49145) \ n в Object.token (eval at initializeActionHandler (/nodejsAction/runner.js:57:23),: 22: 44594)\ n в речи в to-text_token (eval в initializeActionHandler (/nodejsAction/runner.js:57:23),: 22: 43617) \ n в Object.exec (eval в initializeActionHandler (/nodejsAction/runner.js:57:23),: 22: 43498) \ n в Promise (eval в initializeActionHandler (/nodejsAction/runner.js:57:23),: 22: 43038) \ n в новом Promise () \ n в NodeActionRunner.a [как userScriptMain] (eval at initializeActionHandler (/nodejsAction/runner.js:57:23),: 22: 43016) \ n в Promise (/nodejsAction/runner.js:73:35)\n at new Promise () "}

#

export const SpeechToText = {
  token: (params: WatsonParams) => {
    const sttCredentials = Object.assign(
      {
        username: params.speechToTextUsername, // or hard-code credentials here
        password: params.speechToTextPassword,
        iam_apikey: params.speechToTextIamApikey, // if using an RC service
        url: params.speechToTextUrl ? params.speechToTextUrl : SpeechToTextV1.URL
      },
      vcapServices.getCredentials('speech_to_text') // pulls credentials from environment in bluemix, otherwise returns {}
    );
    const sttAuthService = new AuthorizationV1(sttCredentials);
    return Observable.create((observer) => {
      sttAuthService.getToken(function(err, response) {
        if (err) {
          console.log('Error retrieving token: ', err);
          observer.error('Error retrieving token...');
        } else {
          const token = response.token || response;
          if (params.speechToTextIamApikey) {
            observer.next({ accessToken: token, url: sttCredentials.url });
          } else {
            observer.next({ token: token, url: sttCredentials.url });
          }
          observer.complete();
        }
      });  
    });
  }  
}  

Ожидайте, что он вернет токен.

1 Ответ

1 голос
/ 04 ноября 2019

Аутентификация изменена в v5. См. MIGRATION-V5

. Теперь конструкторы службы SDK принимают Authenticator объекты, которые используются для аутентификации запросов. Конструкторы больше не принимают индивидуальные учетные данные, такие как username и password.

Вот пример из справочника API .

const SpeechToTextV1 = require('ibm-watson/speech-to-text/v1');
const { IamAuthenticator } = require('ibm-watson/auth');

const speechToText = new SpeechToTextV1({
  authenticator: new IamAuthenticator({
    apikey: '{apikey}',
  }),
  url: '{url}',
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...