Документация IBM гласит, что следующий внутренний код узла позволяет вам Use the API key to have the SDK manage the lifecycle of the token. The SDK requests an access token, ensures that the access token is valid, and refreshes it if necessary.
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}',
});
Как получить токен из speechToText
для передачи на мой интерфейс Angular приложение работает в браузере? Я попытался вызвать метод getToken
, чтобы получить токен:
const SpeechToTextV1 = require('ibm-watson/speech-to-text/v1');
const { IamAuthenticator } = require('ibm-watson/auth');
const speechToText = new SpeechToTextV1({
authenticator: new IamAuthenticator({
apikey: 'my-api-key',
}),
url: 'my-url',
});
speechToText.getToken(function (err, token) {
if (!token) {
console.log('error: ', err);
} else {
console.log(token);
// do more stuff with the token
}
});
Это не сработало. Сообщение об ошибке speechToText.getToken is not a function
. Должен ли я попробовать speechToText.authenticator.getToken
?
Я попытался получить токен от ibm-watson/sdk
вместо от ibm-watson/speech-to-text/v1
?
const watson = require('ibm-watson/sdk');
const { IamAuthenticator } = require('ibm-watson/auth');
const authorization = new watson.AuthorizationV1({
authenticator: new IamAuthenticator({ apikey: 'my-api-key' }),
url: 'my-url'
});
authorization.getToken(function (err, token) {
if (!token) {
console.log('error: ', err);
} else {
console.log(token);
// do stuff with token
}
});
, который получает новый дымный токен. Но токен не работает. Когда я запускаю WatsonSpeech.SpeechToText.recognizeMicrophone
, я получаю сообщение об ошибке HTTP Authentication failed; no valid credentials available
.
Похоже, что для каждой службы IBM Watson нужен собственный токен, созданный с помощью URL-адреса c, определяемого службой. Я поместил URL-адрес для преобразования текста в ibm-watson/sdk
, чтобы получить правильный токен. Я не понимаю, почему токен не работает.