Javascript Twitch PubSub API返回ERR_BADAUTH
我四处寻找我的问题的解决方案,我发现了类似的问题,但似乎没有任何解决方案能解决我的问题。我一直在用websocket的回复来结束这篇文章 网袋打开 {type:'响应', 错误:“ERR_BADAUTH”, nonce:'jeedsycjvgpwref' } 下面是一个代码示例。我正在生成与API调用相同的令牌,并且我的作用域是[“通道:读取:赎回”]Javascript Twitch PubSub API返回ERR_BADAUTH,javascript,node.js,websocket,publish-subscribe,twitch,Javascript,Node.js,Websocket,Publish Subscribe,Twitch,我四处寻找我的问题的解决方案,我发现了类似的问题,但似乎没有任何解决方案能解决我的问题。我一直在用websocket的回复来结束这篇文章 网袋打开 {type:'响应', 错误:“ERR_BADAUTH”, nonce:'jeedsycjvgpwref' } 下面是一个代码示例。我正在生成与API调用相同的令牌,并且我的作用域是[“通道:读取:赎回”] var AT=''; GetWitchToken(process.env.GET_TOKEN,(res)=>{ AT=res.body.acce
var AT='';
GetWitchToken(process.env.GET_TOKEN,(res)=>{
AT=res.body.access\u令牌;
验证令牌(AT);
twitchWebSocketConnect(AT);
返回;
})
功能twitchWebSocketConnect(AT){
log('Starting Twitch WebSocket',AT);
ws=新WebSocket('wss://pubsub-edge.twitch.tv');
ws.onopen=函数(事件){
console.log('websocketopen');
listensubsubsub(AT);
};
ws.onerror=函数(错误){
日志('Websocket错误',错误);
};
ws.onmessage=函数(事件){
message=JSON.parse(event.data);
控制台日志(消息);
//console.log('On Message',Message);
如果(message.type==“重新连接”){
log('Websocket重新连接…');
//setTimeout(连接、重新连接Interval);
}
};
ws.onclose=function(){
console.log('Websocket关闭');
log('Websocket重新连接');
//setTimeout(twitchWebSocketConnect(),1000);
};
}
函数nonce(长度){
var text=“”;
var-mablue=“ABCDEFGHIJKLMNOPQRSTUVXYZABCDFGHIJKLMNOPQRSTUVXYZ0123456789”;
对于(变量i=0;i
var AT = '';
getTwitchToken(process.env.GET_TOKEN,(res) => {
AT = res.body.access_token;
validateTwitchToken(AT);
twitchWebSocketConnect(AT);
return AT;
})
function twitchWebSocketConnect(AT){
console.log('Starting Twitch WebSocket', AT);
ws = new WebSocket('wss://pubsub-edge.twitch.tv');
ws.onopen = function(event) {
console.log('Websocket Open');
listenPubSub(AT);
};
ws.onerror = function(error) {
console.log('Websocket Error', error);
};
ws.onmessage = function(event) {
message = JSON.parse(event.data);
console.log(message);
// console.log('On Message', message);
if (message.type == 'RECONNECT') {
console.log('Websocket Reconnecting...');
// setTimeout(connect, reconnectInterval);
}
};
ws.onclose = function() {
console.log('Websocket Closed');
console.log('Websocket Reconnecting');
// setTimeout(twitchWebSocketConnect(), 1000);
};
}
function nonce(length) {
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for (var i = 0; i < length; i++) {
text += possible.charAt(Math.floor(Math.random() * possible.length));
}
return text;
}
// function listen(topic) {
function listenPubSub(accessToken) {
message = {
type: 'LISTEN',
nonce: nonce(15),
data: {
topics: [`channel-points-channel-v1.${process.env.TWITCH_CHANNEL_ID}`],
auth_token: accessToken
}
};
ws.send(JSON.stringify(message));
}