希望制作一个 twitter 机器人,它将按顺序从文件夹中发布图像。使用 node.js
Posted
技术标签:
【中文标题】希望制作一个 twitter 机器人,它将按顺序从文件夹中发布图像。使用 node.js【英文标题】:looking to make a twitter bot that will post images from a folder in order. using node.js 【发布时间】:2020-08-11 19:03:53 【问题描述】:所以基本上我一直在关注在线指南,该指南向我展示了如何创建一个推特机器人,该机器人将从我的电脑上的一个文件夹中发布图像。我有一个很大的照片库,我想发推文,但是,本指南只是向我展示了一种以随机顺序发推文的方法。我希望能够按照照片在文件夹内的排序顺序发布照片。这是我正在使用的。我想问题在于[Math.floor(Math.random() * images.length)];
行。如果这是一个愚蠢的问题,我道歉。我对这一切都很陌生。
var Twit = require('twit')
var fs = require('fs'),
path = require('path'),
Twit = require('twit'),
config = require(path.join(__dirname, 'config.js'));
var T = new Twit(config);
function random_from_array(images)
return images[Math.floor(Math.random() * images.length)];
function upload_random_image(images)
console.log('Opening an image...');
var image_path = path.join(__dirname, '/images/' + random_from_array(images)),
b64content = fs.readFileSync(image_path, encoding: 'base64' );
console.log('Uploading an image...');
T.post('media/upload', media_data: b64content , function (err, data, response)
if (err)
console.log('ERROR:');
console.log(err);
else
console.log('Image uploaded!');
console.log('Now tweeting it...');
T.post('statuses/update',
media_ids: new Array(data.media_id_string)
,
function(err, data, response)
if (err)
console.log('ERROR:');
console.log(err);
else
console.log('Posted an image!');
);
);
【问题讨论】:
到底发生了什么?图片没有发布吗? 图片正在发布,但它们是以随机顺序发布的。我希望能够按照它们在我的图像文件夹中列出的顺序发布推文。 你帖子的标题说你想按顺序发布,但功能说是随机的。 是的,这就是我正在关注的教程所面临的问题。如何更改代码以便他们按顺序发布?我分享的代码是教程告诉我发布的,但显然我希望它不是随机的。 【参考方案1】:您希望机器人按顺序发布下一张图片,而不是随机发布一张,这需要对函数 upload_random_image() 进行一些重组,我将复制粘贴该函数,添加一个参数,然后重命名新函数 upload_all (images, n) 它看起来像这样:
function upload_all(images, n)
console.log('Opening an image...');
var image_path = path.join(__dirname, '/images/' + n),
b64content = fs.readFileSync(image_path, encoding: 'base64' );
console.log('Uploading an image...');
T.post('media/upload', media_data: b64content , function (err, data, response)
if (err)
console.log('ERROR:');
console.log(err);
else
console.log('Image uploaded!');
console.log('Now tweeting it...');
T.post('statuses/update',
media_ids: new Array(data.media_id_string)
,
function(err, data, response)
if (err)
console.log('ERROR:');
console.log(err);
else
console.log('Posted an image!');
);
);
if ( n < images.length()-1)
return upload_all(images, n++);
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于希望制作一个 twitter 机器人,它将按顺序从文件夹中发布图像。使用 node.js的主要内容,如果未能解决你的问题,请参考以下文章
以简单的方式或工具在 Twitter(机器人)中自动回复推文?