#javascript #node.js #bots #twitch
#javascript #node.js #боты #Twitch
Вопрос:
Я написал бота в NODE JS, который будет постоянно отслеживать пользователей twitch, и когда какой-либо пользователь подключится к Сети, он отправит сообщение в приложение «group me», в котором пользователь находится в Сети. Он работает нормально. Моя проблема в том, что иногда он отправляет сообщение о том, что пользователь подключен к сети, но на самом деле пользователь отключен. Есть идеи о том, как это решить?
var users = ["Statelinejay", "Ad_914", "Houssam06" ];
var messages = ["notsent", "notsent", "notsent" ];
var Client = require('node-rest-client').Client;
var client = new Client();
var express = require('express');
var request = require('request');
var app = express();
app.set('port', (process.env.PORT || 5000));
function theCall(index) {
console.log('Processing ' users[index]);
client.get('https://api.twitch.tv/kraken/streams/' users[index] '?client_id=xxxxxxxxxxxxxxxxxxxxxxx', function (data, response) {
if (data["stream"] === null) {
messages[index] = 'notsent';
console.log(users[index] 'is offline');
} else
//// Start of sending message
var myJSONObject = {
"bot_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"text": " https://www.twitch.tv/" users[index]
};
if (messages[index] === 'notsent') {
request.post({
url: " https://api.groupme.com/v3/bots/post",
method: "POST",
json: true, // <--Very important!!!
body: myJSONObject
},
function (error, response, body) {
console.log(error);
}
);
messages[index] = 'sent';
console.log('message sent');
}
//// End of sending message
console.log(users[index] ' is online') ;
}
theCall(( index % users.length));
});
}
app.listen(app.get('port'), function() {
console.log('Node app is running on port', app.get('port'));
theCall(0);
});
Ответ №1:
Вы уверены, что data [«stream»] всегда равен нулю, когда стример находится в автономном режиме? Может ли это быть неопределенным? Не могли бы вы попробовать
if (!data["stream"])
вместо
if (data["stream"] === null)
?
Если это не сработает, можете ли вы утешить.зарегистрируйте свои данные и переменные ответа для ложного онлайн-стримера и обновите вопрос?
Комментарии:
1. Да, он будет равен нулю, когда пользователь находится в автономном режиме. переменная данных состоит из разных