【发布时间】:2026-01-27 02:25:01
【问题描述】:
我正在编写 IBM Watson Speech-to-text 教程。在“Using the WebSocket interface”部分的“打开连接并传递凭据”小节中,我复制了以下代码:
var token = watsonToken;
console.log(token); // token looks good
var wsURI = 'wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?watson-token=' +
token + '&model=es-ES_BroadbandModel';
var websocket = new WebSocket(wsURI);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
我正在使用 Angular,所以我为令牌创建了一个值:
app.value('watsonToken', 'Ln%2FV...');
我收到一条错误消息:
WebSocket connection to 'wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?watson-toke...&model=es-ES_BroadbandModel' failed: HTTP Authentication failed; no valid credentials available
我尝试对令牌进行硬编码:
var wsURI = 'wss://stream.watsonplatform.net/speech-to-text/api/v1/recognize?watson-token=Ln%2FV2...&model=es-ES_BroadbandModel';
同样的错误信息。
IBM 在tokens 上的文档说,过期或无效的令牌将返回 401 错误,我没有得到,所以我认为我的令牌既没有过期也没有无效。有什么建议吗?
【问题讨论】:
标签: websocket token ibm-watson