Я пытаюсь настроить API-интерфейс Twitter-бота, который создает настраиваемое изображение. Когда я запускаю сценарий, я получаю следующую ошибку:
D: \ TwitterBot \ Node1 \ bot.js: 39 media_ids: [id] ^^^^^^^^^
SyntaxError: неожиданный идентификатор
Мой файл js пока выглядит так (учетные данные API отредактированы по понятным причинам)
console.info("The bot is starting...");
var Twit = require("twit");
var T = new Twit({
consumer_key: "...",
consumer_secret: "...",
access_token: "...",
access_token_secret: "...",
})
var exec = require('child_process').exec;
var fs = require('fs');
function processing() {
console.info('finished');
}
tweetIt();
//setInterval(tweetIt, 1000*60) //1 min
function tweetIt(){
var cmd = 'processing-java --sketch=rainbow --run'
exec(cmd, processing);
function processing() {
var filename = 'rainbow/output.png';
var params = {
encoding: 'base64'
}
var b64 = fs.readFileSync(filename, params);
T.post('media/upload', { media_data: b64 }, uploaded);
function uploaded(err, data, response) {
var id = data.media_id_string;
var tweet = {
status: '#test'
media_ids: [id]
}
T.post('statuses/update', tweet, tweeted);
}
}
}
function tweeted(err, data, response) {
if (err) {
console.info('fail');
} else {
console.info('pass');
}
}
Я не совсем уверен, с чего начать, в моих глазах вроде все хорошо - так что буду признателен, если кто-нибудь посоветует, что я здесь делаю не так



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Это не имеет ничего общего с twitter API, это просто SyntaxError, вам не хватает закрывающего } в конце function tweetIt() {.
function tweetIt() {
var cmd = 'processing-java --sketch = "%cd%\\rainbow" --run'
exec(cmd, processing);
function processing() {
var filename = 'rainbow/output.png';
var params = {
encoding: 'base64'
}
var b64content = fs.readFileSync(filename, params);
T.post('media/upload', { media_data: b64content }, uploaded);
}
} // This was missing
Или в зависимости от того, что вы пытались сделать:
function tweetIt() {
/* ... */
} // This was missing
function processing() {
/* ... */
}
I've now got the following error after making that change: D:\TwitterBot\Node1\bot.js:39 media_ids: [id] ^^^^^^^^^ SyntaxError: Unexpected identifier I've updated the original post with the new code
Вам не хватает запятой (,) после свойства status.
function uploaded(err, data, response) {
var id = data.media_id_string;
var tweet = {
status: '#test', // Missing comma (,)
media_ids: [id]
}
T.post('statuses/update', tweet, tweeted);
}
Привет, после внесения этого изменения у меня возникла следующая ошибка: D: \ TwitterBot \ Node1 \ bot.js: 39 media_ids: [id] ^^^^^^^^^ SyntaxError: Неожиданный идентификатор Я обновил исходный пост с новым кодом
Обновленный ответ, это должен был быть новый вопрос, поскольку вы меняете исходный. И вы должны уметь разбираться в этих синтаксических ошибках самостоятельно, попробуйте установить линтер.
добавить
}в конце функцииtweetIt