如何建立一个照片推特机器人与树莓皮和节点.js

开始使用节点.js创建一个Twitter机器人,只需一个树莓皮就可以发布照片和信息!...

想办法让Twitter更有用,哪怕只对其他人有用?一种方法是创建一个自动的Twitter机器人,用有用的描述发布图片。你可以手动完成…也可以用节点.js把它放在树莓皮上。继续读下去,看看是怎么做的。

twitter-bot-raspberry-pi

为什么要建立一个twitter机器人?

Tweeting photos with a bot

如果你曾经在Twitter上看到过发布照片、事实或漫画等的账户,那么这些账户极有可能是自动生成的。这是一个很好的方式来建立一个观众感兴趣的人在同一个主题。

但除了转发和跟帖,还有另一个原因。构建一个Twitter机器人会教你一些有用的编程技巧。我们之前研究过如何用Python构建一个基本的Twitter bot(也在Raspberry Pi上),但这次我们采用了不同的方法。

在这个项目中,我们将使用节点.js在树莓皮上建立一个照片推特机器人。照片将是第一次世界大战的照片,并附有简短的句子和归属)。这些信息将存储在一个基本数据库数组中。

开始:构建数据库

如果你想建立一个照片推特机器人,你需要从收集你想要分享的图片开始。这些应该是您自己的图像,或者是您根据Creative Comm***或其他开放源代码许可证获得的图像。

你还应该记下归属和其他信息,你想去与图像。我们稍后会回到这个信息,一旦机器人启动并运行。

安装节点.js关于raspbian

从安装开始节点.js. 你应该已经有一个树莓皮了,运行,安装了树莓。对于这个项目,我们推荐一个树莓Pi 2或更高版本;该项目是在树莓Pi 3 B+上进行测试的。

在终端中(或通过SSH),更新系统包列表,并升级到最新版本:

sudo apt-get updatesudo apt-get dist-upgrade

按照屏幕上的提示,等待Pi更新。完成后,使用

sudo reboot

完成后,使用curl下载节点.js:

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

接下来,用

sudo apt-get install -y nodejs

完成所有操作后,运行检查以确保软件安装正确。最简单的方法是检查版本号:

node -v

响应应该类似于v8.11.3(或更高版本)。如果你看到这样的事情,你可以确信节点.js可以使用。

构建你的twitter机器人

下一步是输入创建bot的代码。首先创建一个目录:

mkdir twitterbot

然后,将其更改为bot的新目录:

cd twitterbot

在这里,创建一个名为服务器.js

sudo nano server.js

在此文件中,输入一行:

c***ole.log('I am a Twitter bot!');

按Ctrl+X保存并退出,然后运行脚本:

node '/home/pi/twitterbot/server.js'

这应该返回短语“我是一个Twitter机器人!”。既然您已经确认这是可行的,现在是时候用npm(Node Package Manager)安装Twit库了。通过输入以下内容确保已安装:

npm -v

同样,您应该会看到显示的版本号。

遵循以下步骤:

npm init

首先提示您输入有关节点.js你正在创建的应用程序。将显示默认选项(如下所示),因此您只需按Enter键即可接受它们。您也可以选择输入自己的详细信息。此配置完成后,将要求您用“是”确认详细信息。

下一步是从npm安装Twit模块。

npm install twit --save

等待文件下载到node\u modules子目录。完成后,打开服务器.js在nano中再次归档。

sudo nano server.js

在此处,删除先前输入的命令,并将其替换为:

var fs = require('fs'), path = require('path'), Twit = require('twit'), config = require(path.join(__dirname, 'config.js'));

像以前一样保存并退出。

创建twitter应用程序

要构建一个正常工作的Twitter机器人,您需要创建一个Twitter应用程序。这是一个简单的过程,需要您首先注册一个新的Twitter帐户。请注意,这还需要一个电话号码来验证帐户,完成后,请前往开发者:twitter.com创建应用程序。

如果您没有开发人员帐户,这可能需要一些时间,因为需要填写一定数量的表单。这是Twitter为避免垃圾邮件而采取的步骤,所以请慢慢来,准确地回答问题。

单击“创建应用程序”,然后按要求添加详细信息。在撰写本文时,开发人员系统正在进行大修,因此您可能需要等待几天(并回答一些其他问题)。

Create an app in Twitter

接下来,切换到Keys和Tokens选项卡,在Permissi***下找到访问权限,并确保其设置为Read和Write(如果没有设置,则使用Edit)。然后切换到密钥和令牌并记下以下内容:

  • 使用者密钥
  • 消费者秘密

在访问令牌下,单击创建以生成:

  • 访问令牌
  • 访问令牌密钥

这些是API密钥,您需要这些密钥才能让bot访问您的Twitter帐户。

回到命令行,创建配置.js在nano中:

sudo nano config.js

添加以下内容

var config = { c***umer_key: 'XXXXX', c***umer_secret: 'XXXXX', access_token: 'XXXXX', access_token_secret: 'XXXXX'}module.exports = config;

在“XXXXX”中,替换您自己相应的API密钥详细信息。

Add your key strings generated by Twitter into the config file

保存并退出,然后打开服务器.js.

sudo nano server.js

在这里,将以下行附加到文件末尾:

var T = new Twit(config);T.post('statuses/update', { status: 'My first tweet!' }, function(err, data, resp***e) { c***ole.log(data)});

应该是这样的:

This code will prompt a tweet to be sent.

再次保存并退出,然后在命令行中输入

node server.js

在浏览器中打开您的Twitter帐户以查看结果:

A test tweet sent using Node.js code

你已经确认机器人正在推特,所以是时候给它做点什么了!

创建图像文件夹

要在tweet上发布照片,请将收集的图像复制到文件夹(通常称为images)。从一打左右开始。

下一步,返回到服务器.js文件:

sudo nano server.js

在这里,删除发送tweet的代码,以T.post('statuses/update')开头的行。

接下来,用一个名为random\ u from\ u array的函数替换它。这将从images文件夹中随机选取一个图像。

function random_from_array(images){ return images[Math.floor(Math.random() * images.length)];}

完成此操作后,您需要添加第二个函数,上传\u随机\u图像:

function upload_random_image(images){ c***ole.log('Opening an image...'); var image_path = path.join(__dirname, '/images/' + random_from_array(images)), b64content = fs.readFileSync(image_path, { encoding: 'base64' }); c***ole.log('Uploading an image...'); T.post('media/upload', { media_data: b64content }, function (err, data, resp***e) { if (err){ c***ole.log('ERROR:'); c***ole.log(err); } else{ c***ole.log('Image uploaded!'); c***ole.log('Now tweeting it...'); T.post('statuses/update', { media_ids: new Array(data.media_id_string) }, function(err, data, resp***e) { if (err){ c***ole.log('ERROR:'); c***ole.log(err); } else{ c***ole.log('Posted an image!'); } } ); } });}

这个函数从images文件夹中随机选取一个图像,一旦选中,就会使用media/upload API上传到Twitter。

接下来,添加以下代码。这将找到images目录,并从中获取一张图像,每60秒随机发布一张。您可以(也应该)编辑这个计时,它在代码中用图60000表示。建议间隔较长。

setInterval(function(){ upload_random_image(images); }, 60000); }});

用Ctrl+X保存,然后用Yes保存。(GitHub源不再可用)。

一次使用节点服务器.js命令将提示照片开始推特!(如果您需要结束文章,请按Ctrl+Z取消此操作。)服务器.js脚本。)

向照片推文中添加文字

如果需要向图像中添加文本,可以使用数组来完成。数组将引用图像的文件名并列出应添加的文本。例如,您可以为未拍摄的图像添加属性。或者你可以添加一些事实或引用。

A Twitter bot can post photos and text

从创建图片.js

sudo nano images.js

在这里,添加以下代码。这是一个数组,包含两个元素:文件和源。它们包含图像的文件名和属性(通常是URL)。

var images = [ { file: 'image0001.png', source: 'http://www.example.com/image0001.png' }, { file: 'image0002.png', source: 'http://www.example.com/image0002.png' },]

根据需要对每个图像重复上述步骤,然后结束图片.js文件:

module.exports = images;

保存并关闭文件,然后打开服务器.js再次,并将其添加到变量列表中:

images = require(path.join(__dirname, 'images.js'));

保存并退出,然后用该节点重新启动Twitter bot服务器.js再次发出命令。

您还可以使用“source”字段包含一些文本,解释图片的背景。这可以包含在URL旁边。

你的第一个twitter bot,准备好重用了!

现在,您应该有一个自动发布Twitter bot并运行,共享照片,事实和属性在您给定的主题。

总而言之,这个过程是:

  • 收集你的照片
  • 安装节点.js
  • 构建你的Twitter机器人
  • 在Twitter上申请开发者身份
  • 创建Twitter应用程序
  • 添加属性数组
  • 开始发微博!

也许这其中最好的一点是,该代码可以用于在tweet上发布任何主题的照片、事实和属性。

想知道你还可以用类似的设置运行哪些机器人程序吗?查看我们的名单上最好的Twitter机器人项目的树莓皮!

  • 发表于 2021-03-23 18:07
  • 阅读 ( 354 )
  • 分类:编程

你可能感兴趣的文章

你将来应该学习哪种编程语言?

...序包括Visual Studio代码、Discord和Mailspring。 机器人和API工具。GitHub包含了大量的开源JavaScript bot和代码库,您可以使用这些工具创建有趣的工具,特别是那些与服务提供的现有API交互的工具(例如Slack、Discord、PayPal...

  • 发布于 2021-03-11 19:38
  • 阅读 ( 329 )

10个神奇的万圣节道具,你可以用树莓皮

... 不管是哪种方式,检查这些视频和他们的笔记,了解如何开始的详细信息。我们甚至给了你一些有用的指标来说明结果的有效性,以及建立这些结果的难度! ...

  • 发布于 2021-03-13 01:17
  • 阅读 ( 211 )

如何把旧笔记本电脑屏幕变成魔镜

...面有机玻璃——装在后面的屏幕上。这是一个紧配合无论如何,所以没有额外的固定需要。我用了一些双面胶带来固定树莓皮和其他的东西。 ...

  • 发布于 2021-03-13 06:57
  • 阅读 ( 202 )

blynk入门:简单的diy物联网设备

...快和容易。在本文中,我们将详细介绍Blynk是什么,它是如何工作的,并提供两个关于NodeMCU和Raspberry Pi开发板服务不同用途的简短示例项目。 ...

  • 发布于 2021-03-16 11:06
  • 阅读 ( 465 )

26种树莓皮的妙用

... 7控制机器人 ...

  • 发布于 2021-03-19 18:15
  • 阅读 ( 342 )

每个程序员都应该知道的13个最好的浏览器ide

...视觉效果,p5.js库还提供了交互的机会。我们的语音感应机器人动画教程展示了使用p5.js创建反应式艺术是多么快速和简单。 ...

  • 发布于 2021-03-21 19:14
  • 阅读 ( 433 )

5辆你可以用树莓皮和arduino自制的电动车

...兴趣创建自己的电池驱动的车辆,从这个4轮驱动的Arduino机器人开始是一个很好的方式来学习与Arduino控制电机的基础知识。 ...

  • 发布于 2021-03-24 09:40
  • 阅读 ( 287 )

为2018年世界杯打造10个足球主题diy项目

... 4树莓pi球跟踪机器人 ...

  • 发布于 2021-03-24 15:20
  • 阅读 ( 256 )

如何使用javascript控制arduino

... javascript机器人与johnny five ...

  • 发布于 2021-03-26 11:34
  • 阅读 ( 261 )

你能在树莓皮上投资加密货币来产生被动收入吗?

...否希望通过你的资产不费吹灰之力就能获得红利?下面是如何让你的加密货币资产发挥作用,并在这个过程中被动地赚取奖励! ...

  • 发布于 2021-03-27 02:42
  • 阅读 ( 180 )
phne45714
phne45714

0 篇文章