Проблема Node.js с твиттер API / ботом

Я пытаюсь настроить 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');
	}
}	
	

Я не совсем уверен, с чего начать, в моих глазах вроде все хорошо - так что буду признателен, если кто-нибудь посоветует, что я здесь делаю не так

добавить } в конце функции tweetIt

Vivek 22.06.2018 21:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
1
39
1

Ответы 1

Это не имеет ничего общего с 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: Неожиданный идентификатор Я обновил исходный пост с новым кодом

Ben Hannah 24.06.2018 00:20

Обновленный ответ, это должен был быть новый вопрос, поскольку вы меняете исходный. И вы должны уметь разбираться в этих синтаксических ошибках самостоятельно, попробуйте установить линтер.

Marcos Casagrande 24.06.2018 00:53

Другие вопросы по теме