nodejs Twit публикует случайную ссылку на YouTube

#javascript #node.js

#javascript #node.js

Вопрос:

У меня есть работающий бот с функцией ретвита сообщений с хэштегами.

Использование Nodejs и twit

Теперь я пытаюсь создать генератор ссылок на YouTube, но, похоже, отправляюсь по кругу.

Любая помощь с этим была бы оценена..

 const Twit = require('twit')
const config = require('./config')
var Twitter = new Twit(config)
require('console-stamp')(console, '[HH:MM:ss.l]');
console.log('the bot is looking at bot.js');

let phraseArray = [
  "Rod Stewart - If you think Im sexy https://www.youtube.com/watch?v=Hphwfq1wLJs",
  "Tom Jones - Not Unusual - Live Tea in the park https://www.youtube.com/watch?v=zydIvSDXS7Y",
  "Britney Spears - Baby one more time - Live in hawaii https://www.youtube.com/watch?v=5vjFljmxecY"

];
function chooseRandom(array) {
  return array[Math.floor(Math.random() * array.length)];
}
let phrase =
  chooseRandom(phraseArray);
Twitter.post('statuses/update', { status: chooseRandom });

chooseRandom();

setInterval(chooseRandom, 60*60*1000);
console.log('read through bot.js');

  

Комментарии:

1. не могли бы вы, пожалуйста, подробнее рассказать о том, чего вы пытаетесь достичь. Нравится то, что вы пробовали, и то, что вы видели, и каков ожидаемый результат

2. да .. в основном просто для того, чтобы опубликовать описание и ссылку YouTube прямо в Twitter. Я перепробовал все виды поиска, но многие, похоже, размещают изображение с текстом и т.д., Но, похоже, не могут найти никакой помощи в Google для размещения случайной ссылки.

3. Просто добавлю, что я запустил 100daysofcode challenge около двух недель назад, так что я очень новичок в этом.. Я только что нашел добавление бота для ретвитов забавным, поэтому подумал, что попробую это в качестве своего следующего проекта. Приведенный выше код может быть совершенно неподходящим для данной задачи, поэтому я приношу извинения, если это так.. Но я нуб и готов учиться.

4. ok twitter.post — это асинхронная операция, поэтому вам следует либо использовать обратный вызов, либо обещания, чтобы убедиться, была ли операция успешной или нет Twitter.post('statuses/update', { status: 'hello world!' }, function(err, data, response) { console.log(data) }) что вы пытаетесь опубликовать, это phrase , chooseRandom это функция в вашем случае Я думаю, что статус должен быть строковым, и вы пытаетесь опубликовать функцию без ее оценки

5.если вы новичок, то вам нужно узнать об обратных вызовах / асинхронных операцияхmedium.com/codebuddies /… scotch.io/courses/10-need-to-know-javascript-concepts /…

Ответ №1:

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

 let phrases= [""]; //this is your array

function tweetIt() {

var posts= phrases[Math.floor(Math.random() * phrases.length)];

let tweet = { status: posts
}