chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用樹(shù)莓派和Node.js構(gòu)建推文Twitter Bot的照片

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-12-02 10:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

是否正在尋找一種使Twitter更有用的方法(如果僅對(duì)其他人有用)?一種方法是創(chuàng)建一個(gè)自動(dòng)的Twitter機(jī)器人,該機(jī)器人在推特上添加有用的描述。您可以手動(dòng)執(zhí)行此操作…,也可以使用Node.js進(jìn)行構(gòu)建并將其托管在Raspberry Pi上。繼續(xù)閱讀以了解操作方法。

為什么要構(gòu)建Twitter Bot?

如果您曾經(jīng)在Twitter上看到過(guò)發(fā)布照片,事實(shí),卡通等的帳戶(hù),那么絕大多數(shù)情況下這些都是自動(dòng)化的。這是一種吸引對(duì)同一主題感興趣的人群的好方法。

但是,除了轉(zhuǎn)發(fā)和關(guān)注之外,還有另一個(gè)原因。構(gòu)建Twitter機(jī)器人將教您一些有用的編程技巧。先前我們已經(jīng)研究了如何使用Python(也在Raspberry Pi上)構(gòu)建基本的Twitter機(jī)器人,但是這次我們采用了另一種方法。

在此項(xiàng)目中,我們將使用Node.js在Raspberry Pi上構(gòu)建照片發(fā)布機(jī)器人。這些照片將是第一次世界大戰(zhàn)的照片,并附有簡(jiǎn)短的句子和署名。這些信息將存儲(chǔ)在一個(gè)數(shù)組中,即一個(gè)基本數(shù)據(jù)庫(kù)。

入門(mén):構(gòu)建數(shù)據(jù)庫(kù)

如果您想構(gòu)建照片發(fā)布機(jī)器人,則需要從以下步驟開(kāi)始收集您要共享的圖像。這些應(yīng)該是您自己的圖像,也可以是您根據(jù)知識(shí)共享或其他開(kāi)放源代碼許可獲得的圖像。

您還應(yīng)該留意圖像的歸屬和其他信息。僵尸程序啟動(dòng)并運(yùn)行后,我們將在稍后返回該信息。

在Raspbian上安裝Node.js

首先要安裝Node.js。您應(yīng)該已經(jīng)安裝了Raspbian,并已經(jīng)在運(yùn)行Raspberry Pi。對(duì)于此項(xiàng)目,我們建議使用Raspberry Pi 2或更高版本。該項(xiàng)目已在Raspberry Pi 3 B +上進(jìn)行了測(cè)試。

在終端中(或通過(guò)SSH),更新系統(tǒng)軟件包列表,并升級(jí)到最新版本:

sudo apt-get update

sudo apt-get dist-upgrade

按照屏幕上的提示進(jìn)行操作,然后等待您的Pi更新。完成后,使用

sudo reboot

重新啟動(dòng)。完成后,使用curl下載Node.js:

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

下一步,使用

sudo apt-get install -y nodejs

進(jìn)行安裝。完成所有操作后,運(yùn)行檢查以確保軟件已正確安裝。最簡(jiǎn)單的方法是檢查版本號(hào):

node -v

響應(yīng)應(yīng)該類(lèi)似于v8.11.3(或更高版本)。如果您看到類(lèi)似的內(nèi)容,則可以確信可以使用Node.js。

構(gòu)建您的Twitter Bot

下一步是輸入將創(chuàng)建以下內(nèi)容的代碼:機(jī)器人。首先創(chuàng)建一個(gè)目錄:

mkdir twitterbot

然后,將其更改為您的機(jī)器人的新目錄:

cd twitterbot

在這里,創(chuàng)建一個(gè)名為server.js的文件

sudo nano server.js

在此文件中,輸入一行:

console.log(‘I am a Twitter bot!’);

按 Ctrl + X 保存并退出,然后運(yùn)行腳本:

node ‘/home/pi/twitterbot/server.js’

這應(yīng)該返回短語(yǔ)“我是Twitter機(jī)器人!” ?,F(xiàn)在,您已經(jīng)確認(rèn)它可以運(yùn)行了,是時(shí)候使用 npm ( Node Package Manager )安裝Twit庫(kù)了。再次輸入以下內(nèi)容以確保已安裝:

npm -v

再次,您應(yīng)該會(huì)看到顯示的版本號(hào)。

然后執(zhí)行以下操作:

npm init

這首先提示您輸入有關(guān)正在創(chuàng)建的Node.js應(yīng)用程序的信息。顯示默認(rèn)選項(xiàng)(像這樣),因此您只需點(diǎn)擊Enter即可接受它們。您也可以選擇輸入自己的詳細(xì)信息。配置結(jié)束后,將要求您單擊“是”確認(rèn)詳細(xì)信息。

下一步是從npm安裝Twit模塊。

npm install twit --save

等待文件下載到node_modules子目錄中。完成后,再次在nano中打開(kāi)server.js文件。

sudo nano server.js

在這里,刪除先前輸入的命令,將其替換為:

var fs = require(‘fs’),

path = require(‘path’),

Twit = require(‘twit’),

config = require(path.join(__dirname, ‘config.js’));

像以前一樣保存并退出。

創(chuàng)建一個(gè)Twitter應(yīng)用

要構(gòu)建一個(gè)有效的Twitter機(jī)器人,您需要?jiǎng)?chuàng)建一個(gè)Twitter應(yīng)用。這是一個(gè)簡(jiǎn)單的過(guò)程,需要您首先注冊(cè)一個(gè)新的Twitter帳戶(hù)。請(qǐng)注意,這還需要一個(gè)電話號(hào)碼來(lái)驗(yàn)證該帳戶(hù),完成此操作后,請(qǐng)前往developer.twitter.com來(lái)創(chuàng)建該應(yīng)用程序。

如果您沒(méi)有開(kāi)發(fā)人員帳戶(hù),則可能需要一些時(shí)間,因?yàn)樾枰顚?xiě)一定數(shù)量的表格。這是Twitter為避免垃圾郵件而采取的步驟,請(qǐng)花點(diǎn)時(shí)間并準(zhǔn)確回答問(wèn)題。

點(diǎn)擊創(chuàng)建應(yīng)用,然后根據(jù)要求添加詳細(xì)信息。在撰寫(xiě)本文時(shí),開(kāi)發(fā)人員系統(tǒng)正在進(jìn)行大修,因此您可能必須等待幾天(并回答一些其他問(wèn)題)。

下一步,切換到密鑰和令牌標(biāo)簽,然后在權(quán)限下找到訪問(wèn)權(quán)限,并確保將其設(shè)置為讀取并撰寫(xiě)(如果沒(méi)有,請(qǐng)使用編輯)。然后切換到“密鑰和令牌”并記下以下內(nèi)容:

消費(fèi)者密鑰

消費(fèi)者秘密

“在訪問(wèn)權(quán)限下”令牌,單擊創(chuàng)建以生成:

訪問(wèn)令牌

訪問(wèn)令牌密鑰

這些是API密鑰

返回命令行,在nano中創(chuàng)建config.js:

sudo nano config.js

添加以下

var config = {

consumer_key: ‘XXXXX’,

consumer_secret: ‘XXXXX’,

access_token: ‘XXXXX’,

access_token_secret: ‘XXXXX’

}

module.exports = config;

在其讀為“ XXXXX”的地方,替換您自己的相應(yīng)API密鑰詳細(xì)信息。

保存并退出,然后打開(kāi)server.js。

sudo nano server.js

在此處,在文件末尾添加以下幾行:

var T = new Twit(config);

T.post(‘statuses/update’, { status: ‘My first tweet!’ }, function(err, data, response) {

console.log(data)

});

應(yīng)如下所示:

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

node server.js

在瀏覽器中打開(kāi)您的Twitter帳戶(hù)以查看結(jié)果:

您已經(jīng)確認(rèn)該機(jī)器人正在發(fā)推文,因此該該做點(diǎn)事情了!

創(chuàng)建圖像文件夾

要發(fā)送照片,請(qǐng)將收集的圖像復(fù)制到文件夾中(通常命名為圖像)。從大約一打開(kāi)始。

接下來(lái),返回到server.js文檔:

sudo nano server.js

在這里,刪除發(fā)送推文的代碼,即T.post(‘statuses/update’)開(kāi)頭的行。

接下來(lái),將其替換為名為 random_from_array 的函數(shù)。這將從圖像文件夾中隨機(jī)選擇圖像。

function random_from_array(images){

return images[Math.floor(Math.random() * images.length)];

}

完成此操作后,您需要添加第二個(gè)功能, upload_random_image :

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!’);

}

}

);

}

});

}

此功能從images文件夾中隨機(jī)選擇一個(gè)圖像,選擇后將使用媒體/上傳API將其上傳到Twitter。

接下來(lái),添加以下代碼。這將找到images目錄,并從中獲取一張圖像,每60秒隨機(jī)發(fā)布一張。您可以(并且應(yīng)該)編輯此時(shí)間,該時(shí)間在代碼中用數(shù)字60000表示。建議使用更大的間隙。

setInterval(function(){

upload_random_image(images);

}, 60000);

}

});

使用 Ctrl + X ,然后單擊是進(jìn)行保存。 (您可以在GitHub上找到該項(xiàng)目的完整代碼)。

只需使用一次 node server.js 命令,就會(huì)提示照片開(kāi)始發(fā)推! (如果您需要結(jié)束帖子,請(qǐng)按 Ctrl + Z 來(lái)取消server.js腳本。)

向照片推文中添加文字

如果您需要在圖像中添加文本,可以使用數(shù)組來(lái)完成。該數(shù)組將引用圖像的文件名,并列出應(yīng)添加的文本。例如,您可以為未拍攝的圖片添加歸因。或者,您可以添加一些事實(shí)或報(bào)價(jià)。

通過(guò)創(chuàng)建images.js

sudo nano images.js

在這里,添加以下代碼。這是一個(gè)數(shù)組,具有兩個(gè)元素,文件和源。它們保存圖像的文件名和屬性(通常是URL)。

var images = [

{

file: ‘image0001.png’,

source: ‘http://www.example.com/image0001.png’

},

{

file: ‘image0002.png’,

source: ‘http://www.example.com/image0002.png’

},

根據(jù)需要對(duì)每個(gè)圖像重復(fù)此操作,然后使用以下命令結(jié)束images.js文件:

module.exports = images;

保存并關(guān)閉文件,然后再次打開(kāi)server.js,并將其添加到變量列表中:

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

保存并退出,然后再次使用 node server.js 命令重新啟動(dòng)Twitter機(jī)器人。

您還可以使用“源”字段添加一些文本,解釋圖片的背景。

您的第一個(gè)Twitter Bot,準(zhǔn)備重用!

現(xiàn)在,您應(yīng)該已經(jīng)啟動(dòng)并運(yùn)行了一個(gè)自動(dòng)發(fā)布的Twitter bot,可以共享照片,事實(shí)和給定主題的屬性。

總而言之,過(guò)程是:

收集照片

安裝Node.js

構(gòu)建您的Twitter機(jī)器人

在Twitter上申請(qǐng)開(kāi)發(fā)人員身份

創(chuàng)建一個(gè)Twitter應(yīng)用

添加歸因數(shù)組

開(kāi)始發(fā)推文!

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    121

    文章

    2007

    瀏覽量

    107463
  • NODE.JS
    +關(guān)注

    關(guān)注

    1

    文章

    49

    瀏覽量

    33255
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    樹(shù)莓6 傳聞:發(fā)布日期與規(guī)格!

    每當(dāng)我想再為我的收藏增添一款樹(shù)莓時(shí),總會(huì)在是立即購(gòu)買(mǎi)還是等待硬件更強(qiáng)大的下一代之間猶豫不決。但新樹(shù)莓型號(hào)的發(fā)布往往容易被錯(cuò)過(guò),尤其是在你的信息流被病毒式傳播的貓咪視頻占據(jù)時(shí)。因此,
    的頭像 發(fā)表于 07-11 16:21 ?202次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>6 傳聞:發(fā)布日期與規(guī)格!

    樹(shù)莓小技巧:無(wú)需鍵盤(pán)或顯示器,如何通過(guò)WiFi設(shè)置樹(shù)莓?

    樹(shù)莓是一款小巧便攜的USB供電計(jì)算機(jī),可以隱藏起來(lái)用于小型項(xiàng)目,如網(wǎng)絡(luò)服務(wù)器或家庭自動(dòng)化。通常,設(shè)置樹(shù)莓需要鍵盤(pán)和顯示器來(lái)編輯和查看樹(shù)莓
    的頭像 發(fā)表于 06-26 15:41 ?306次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>小技巧:無(wú)需鍵盤(pán)或顯示器,如何通過(guò)WiFi設(shè)置<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>?

    樹(shù)莓分類(lèi)器:用樹(shù)莓識(shí)別不同型號(hào)的樹(shù)莓

    在本教程系列的第一部分中,您將學(xué)習(xí)如何使用樹(shù)莓AI攝像頭來(lái)檢測(cè)不同的樹(shù)莓型號(hào)。本系列由DavidPlowman創(chuàng)建,他是樹(shù)莓
    的頭像 發(fā)表于 06-13 16:39 ?414次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>分類(lèi)器:用<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>識(shí)別不同型號(hào)的<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>!

    HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開(kāi)發(fā)Node環(huán)境

    ? 你好呀,開(kāi)發(fā)者小伙伴們!今天我們來(lái)聊聊如何在HarmonyOS(ArkTS API 9及以上)中玩轉(zhuǎn)云函數(shù),特別是結(jié)合Node.js和HTTP觸發(fā)器的開(kāi)發(fā)技巧。文章會(huì)手把手帶你從零開(kāi)始,用最接地
    發(fā)表于 05-22 17:21

    樹(shù)莓“吉尼斯世界記錄”:將樹(shù)莓的性能發(fā)揮到極致的項(xiàng)目!

    樹(shù)莓是一款功能強(qiáng)大、體積小巧且高度可定制的設(shè)備,多年來(lái),我們見(jiàn)證了它被應(yīng)用于眾多領(lǐng)域。無(wú)論是將其裝入3D打印的經(jīng)典游戲機(jī)外殼,還是簡(jiǎn)單地將它隱藏起來(lái)作為家庭文件服務(wù)器,我們都報(bào)道過(guò)在社區(qū)里用樹(shù)莓
    的頭像 發(fā)表于 05-22 16:53 ?644次閱讀
    <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>“吉尼斯世界記錄”:將<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>的性能發(fā)揮到極致的項(xiàng)目!

    樹(shù)莓 Zero 打造的智能漫游車(chē)!

    使用PXFMini和樹(shù)莓Zero打造您自己的自主漫游車(chē)。本項(xiàng)目所用組件硬件組件ErleRoboticsPXFmini×1樹(shù)莓Zero×1樹(shù)莓
    的頭像 發(fā)表于 05-13 16:39 ?438次閱讀
    用 <b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b> Zero 打造的智能漫游車(chē)!

    rpi-image-gen:樹(shù)莓軟件鏡像構(gòu)建的終極神器!

    樹(shù)莓設(shè)備上,軟件的多樣性令人印象深刻。樹(shù)莓操作系統(tǒng)雖然適用于許多場(chǎng)景,但我們深知它并非萬(wàn)能,尤其在一些特定用途的產(chǎn)品中更是如此。如果您正在開(kāi)發(fā)嵌入式系統(tǒng)或工業(yè)控制器,您需要對(duì)設(shè)備
    的頭像 發(fā)表于 04-08 15:43 ?343次閱讀
    rpi-image-gen:<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>軟件鏡像<b class='flag-5'>構(gòu)建</b>的終極神器!

    樹(shù)莓派上構(gòu)建和部署 Node.js 項(xiàng)目

    探索在RaspberryPi上構(gòu)建和部署Node.js項(xiàng)目的最佳實(shí)踐。通過(guò)我們的專(zhuān)業(yè)提示和技巧,克服常見(jiàn)挑戰(zhàn),使您的項(xiàng)目順利運(yùn)行。去年圣誕節(jié),我收到了一份極其令人著迷的禮物,它占據(jù)了我許多周末的時(shí)間
    的頭像 發(fā)表于 03-25 09:44 ?271次閱讀
    在<b class='flag-5'>樹(shù)莓</b>派上<b class='flag-5'>構(gòu)建</b>和部署 <b class='flag-5'>Node.js</b> 項(xiàng)目

    僅僅使用代碼,就能點(diǎn)亮樹(shù)莓的 GPIO 世界

    RaspberryPi的一個(gè)流行應(yīng)用是構(gòu)建Web服務(wù)器。為此,我們可以使用不同的技術(shù),如Python、Node.JS甚至PHP。由于RaspberryPi的絕大多數(shù)腳本都是用Python編寫(xiě)的,因此
    的頭像 發(fā)表于 03-25 09:31 ?273次閱讀
    僅僅使用代碼,就能點(diǎn)亮<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>的 GPIO 世界

    【干貨】什么是Node-RED?一帶你了解!

    一什么是Node-RED?首先我們來(lái)認(rèn)識(shí)一下什么是Node-RED。Node-RED是一個(gè)基于Node.js的開(kāi)源可視化編程工具,于2013年由IBM公司推出。它可以通過(guò)瀏覽器的圖形化
    的頭像 發(fā)表于 03-13 19:32 ?803次閱讀
    【干貨】什么是<b class='flag-5'>Node</b>-RED?一<b class='flag-5'>文</b>帶你了解!

    Bun 1.2震撼發(fā)布:全力挑戰(zhàn)Node.js生態(tài)的JavaScript運(yùn)行時(shí)新星

    了與 Node.js 的兼容性,還為開(kāi)發(fā)者帶來(lái)了內(nèi)置的數(shù)據(jù)庫(kù)支持和云服務(wù)集成能力,進(jìn)一步強(qiáng)化了其“全能工具包”的定位。Node.js 兼容性獲得突破性進(jìn)展在此次更新中,最引人注目的是 Bun 在 Node.js 兼容性
    的頭像 發(fā)表于 01-24 10:42 ?852次閱讀
    Bun 1.2震撼發(fā)布:全力挑戰(zhàn)<b class='flag-5'>Node.js</b>生態(tài)的JavaScript運(yùn)行時(shí)新星

    Node.js小科普和Node.js安裝常見(jiàn)管理工具

    Node.js是一個(gè)JavaScript的運(yùn)行環(huán)境,用來(lái)執(zhí)行JavaScript代碼。 為什么會(huì)出現(xiàn)這么一個(gè)運(yùn)行環(huán)境呢,從JavaScript研發(fā)初衷可以看出它是為了運(yùn)行在瀏覽器中的,讓網(wǎng)頁(yè)交互更加
    的頭像 發(fā)表于 11-23 15:37 ?418次閱讀
    <b class='flag-5'>Node.js</b>小科普和<b class='flag-5'>Node.js</b>安裝常見(jiàn)管理工具

    樹(shù)莓gpio有什么用,樹(shù)莓gpio接口及編程方法

    一、樹(shù)莓GPIO的用途 樹(shù)莓(Raspberry Pi)是一款小巧、功能強(qiáng)大的單板計(jì)算機(jī),廣泛應(yīng)用于編程教育、物聯(lián)網(wǎng)項(xiàng)目、家庭媒體中心等領(lǐng)域。GPIO(General Purpos
    的頭像 發(fā)表于 10-22 18:09 ?2682次閱讀

    什么是樹(shù)莓?樹(shù)莓是什么架構(gòu)的

    什么是樹(shù)莓 樹(shù)莓(Raspberry Pi,簡(jiǎn)寫(xiě)為RPi,別名為RasPi/RPI)是由英國(guó)“Raspberry Pi 慈善基金會(huì)”開(kāi)發(fā)的一款為學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)的微型電腦。
    的頭像 發(fā)表于 10-22 17:33 ?5834次閱讀

    工程師必備!Node.js和常見(jiàn)管理工具介紹(附操作演示)

    語(yǔ)言及其相關(guān)生態(tài)中的一些基礎(chǔ)而關(guān)鍵的概念,以及它們是如何在互聯(lián)網(wǎng)歷史浪潮中產(chǎn)生的。一JavaScript與Node.js1JavaScriptJavaScript,即JS,
    的頭像 發(fā)表于 08-30 12:34 ?575次閱讀
    工程師必備!<b class='flag-5'>Node.js</b>和常見(jiàn)管理工具介紹(附操作演示)