रास्पबेरी पाई और Node.js के साथ एक फोटो ट्वीटिंग ट्विटर बॉट कैसे बनाएं
विज्ञापन
ट्विटर को अधिक उपयोगी बनाने के लिए एक रास्ता खोज रहा है, अगर केवल अन्य लोगों के लिए? एक तरीका एक स्वचालित ट्विटर बॉट बनाना है जो उपयोगी विवरणों के साथ छवियों को ट्वीट करता है। आप इसे मैन्युअल रूप से कर सकते हैं ... या आप इसे Node.js के साथ बना सकते हैं और इसे रास्पबेरी पाई पर होस्ट कर सकते हैं। कैसे, पता करने के लिए पढ़ें।
एक ट्विटर बॉट का निर्माण क्यों?
यदि आप कभी भी ट्विटर पर हैं और ऐसे खाते देखे हैं जो फ़ोटो, या तथ्य, या कार्टून आदि पोस्ट करते हैं, तो यह अत्यधिक संभावना है कि ये स्वचालित हैं। यह एक ही विषय में रुचि रखने वाले लोगों के दर्शकों का निर्माण करने का एक शानदार तरीका है।
लेकिन एक और कारण है, रीट्वीट और फॉलो से परे। ट्विटर बॉट का निर्माण आपको कुछ उपयोगी प्रोग्रामिंग कौशल सिखाएगा। हमने पहले देखा है कि पायथन के साथ एक बुनियादी ट्विटर बॉट कैसे बनाया जाए। रास्पबेरी पाई ट्विटर बॉट कैसे बनाया जाए। रास्पबेरी पाई ट्विटर का निर्माण कैसे करें बॉट ट्विटर दुनिया का सबसे बड़ा संदेश है जिसमें कुछ भी नहीं कहने वाले लोगों के छोटे संदेशों का भंडार है - और अब आप वह भी आपके रास्पबेरी द्वारा संचालित एक स्वचालित ट्विटर बॉट के साथ उस महाकाव्य परियोजना में योगदान कर सकता है ... और पढ़ें (एक रास्पबेरी पाई पर भी), लेकिन इस बार हम एक अलग दृष्टिकोण ले रहे हैं।
इस परियोजना में, हम रास्पबेरी पाई पर फोटो-ट्वीटिंग बॉट बनाने के लिए Node.js का उपयोग करने जा रहे हैं। तस्वीरें प्रथम विश्व युद्ध की तस्वीरें होंगी, जिसमें एक छोटा वाक्य और उच्चारण होगा)। यह जानकारी एक सरणी में संग्रहीत की जाएगी, एक बुनियादी डेटाबेस तो एक डेटाबेस क्या है, वैसे भी? [MakeUseOf बताते हैं] तो क्या एक डेटाबेस है, वैसे भी? [MakeUseOf बताते हैं] एक प्रोग्रामर या एक प्रौद्योगिकी उत्साही के लिए, एक डेटाबेस की अवधारणा कुछ ऐसी है जो वास्तव में दी जा सकती है। हालांकि, कई लोगों के लिए एक डेटाबेस की अवधारणा ही थोड़ा विदेशी है .... और पढ़ें
आरंभ करें: अपने डेटाबेस का निर्माण करें
यदि आप बॉट ट्वीट करने वाली फोटो बनाना चाहते हैं, तो आपको उन छवियों को इकट्ठा करके शुरू करना होगा जिन्हें आप साझा करना चाहते हैं। ये या तो आपकी स्वयं की छवियां होनी चाहिए, या जिन्हें आपने क्रिएटिव कॉमन्स या किसी अन्य ओपन सोर्स लाइसेंस के तहत हासिल किया है।
आपको एट्रिब्यूशन और अन्य जानकारी को भी ध्यान में रखना चाहिए जो आप छवियों के साथ जाना चाहते हैं। एक बार बॉट उठने और चलने के बाद हम इस जानकारी पर वापस आएँगे।
रास्पियन पर Node.js स्थापित करें
Node.js. स्थापित करके शुरू करें रास्पबेरी पाई स्थापित करने के लिए आपके पास पहले से ही एक रास्पबेरी पाई होनी चाहिए, रास्पबेरी पाई पर एक ऑपरेटिंग सिस्टम स्थापित करने के लिए कैसे। एक रास्पबेरी पाई पर एक ऑपरेटिंग सिस्टम कैसे स्थापित करें यहां बताया गया है कि कैसे अपने रास्पबेरी पाई पर एक ओएस स्थापित करें और अपने परिपूर्ण को कैसे क्लोन करें। त्वरित आपदा वसूली के लिए सेटअप। अधिक पढ़ें । इस परियोजना के लिए, हम एक रास्पबेरी पाई 2 या बाद की सिफारिश करते हैं; परियोजना का परीक्षण रास्पबेरी पाई 3 बी + पर किया गया था। यदि आपको रास्पबेरी पाई 3 बी + मॉडल की आवश्यकता है तो कैसे तय करें यदि आपको रास्पबेरी पाई 3 बी + मॉडल की आवश्यकता है तो तय करें कि रास्पबेरी पाई 3 बी + मॉडल की लागत कितनी है, इसके विनिर्देश क्या हैं और क्या यह आपकी मौजूदा परियोजनाओं में सुधार करेगा? अधिक पढ़ें ।
टर्मिनल में (या एसएसएच वीएनसी, एसएसएच और एचडीएमआई के माध्यम से: आपके रास्पबेरी पाई वीएनसी, एसएसएच और एचडीएमआई देखने के लिए तीन विकल्प: आपका रास्पबेरी पाई देखने के तीन विकल्प। रास्पबेरी पाई एक उल्लेखनीय छोटा कंप्यूटर है, लेकिन इसे सेट करने में समय लग सकता है। इसे ऊपर और अपने मॉनिटर से कनेक्ट करें। और पढ़ें), सिस्टम पैकेज सूची को अपडेट करें, और नवीनतम संस्करण में अपग्रेड करें:
sudo apt-get update sudo apt-get dist-upgrade
ऑन-स्क्रीन प्रॉम्प्ट का पालन करें, और अपने पीआई अपडेट करते समय प्रतीक्षा करें। एक बार जब आप कर रहे हैं, के साथ रिबूट
sudo reboot
जब आप कर लें, तो Node.js डाउनलोड करने के लिए कर्ल का उपयोग करें:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
इसके बाद, इसे स्थापित करें
sudo apt-get install -y nodejs
जब सब हो जाता है, तो यह सुनिश्चित करने के लिए एक चेक चलाएं कि सॉफ्टवेयर सही ढंग से स्थापित किया गया था। संस्करण संख्या के लिए जाँच करना सबसे आसान है:
node -v
प्रतिक्रिया v8.11.3 (या उच्चतर) जैसी होनी चाहिए। यदि आप ऐसा कुछ देखते हैं, तो आप आश्वस्त हो सकते हैं कि Node.js उपयोग करने के लिए तैयार है।
अपना ट्विटर बॉट बनाएं
अगला चरण उस कोड को इनपुट करना है जो बॉट बनाएगा। एक निर्देशिका बनाकर शुरू करें:
mkdir twitterbot
फिर, इसे अपने बॉट के लिए नई निर्देशिका में बदलें:
cd twitterbot
यहां, server.js नामक एक फाइल बनाएं
sudo nano server.js
इस फाइल में, सिंगल लाइन इनपुट करें:
console.log('I am a Twitter bot!');
सहेजने और बाहर निकलने के लिए Ctrl + X दबाएँ, फिर स्क्रिप्ट चलाएँ:
node '/home/pi/twitterbot/server.js'
यह वाक्यांश "मुझे एक ट्विटर बॉट है!" लौटना चाहिए। अब जब आपने पुष्टि कर ली है कि यह काम कर रहा है, तो npm ( नोड पैकेज मैनेजर ) के साथ ट्विट लाइब्रेरी स्थापित करने का समय आ गया है। यह दर्ज करके सुनिश्चित करें:
npm -v
फिर से, आपको एक संस्करण संख्या प्रदर्शित करनी चाहिए।
इस का पालन करें:
npm init
यह आपके द्वारा बनाए जा रहे Node.js ऐप के बारे में जानकारी के लिए संकेत देने से शुरू होता है। डिफ़ॉल्ट विकल्प (इस तरह) प्रदर्शित किए जाते हैं ताकि आप उन्हें स्वीकार करने के लिए केवल दर्ज कर सकें। आप अपने स्वयं के विवरण भी इनपुट करना चुन सकते हैं। एक बार यह कॉन्फ़िगरेशन समाप्त हो जाने के बाद, आपको "हां" के साथ विवरण की पुष्टि करने के लिए कहा जाएगा।
अगला चरण npm से ट्विट मॉड्यूल को स्थापित करना है।
npm install twit --save
जब फाइलें नोड_मॉड्यूल उपनिर्देशिका में डाउनलोड होती हैं तो प्रतीक्षा करें। एक बार जब यह हो जाता है, तो नैनो में फिर से server.js फ़ाइल खोलें।
sudo nano server.js
यहां, आपके द्वारा पहले दर्ज की गई कमांड को हटाएं, इसकी जगह:
var fs = require('fs'), path = require('path'), Twit = require('twit'), config = require(path.join(__dirname, 'config.js'));
सहेजें और पहले की तरह बाहर निकलें।
एक ट्विटर ऐप बनाएं
एक कामकाजी ट्विटर बॉट बनाने के लिए, आपको एक ट्विटर ऐप बनाना होगा। यह एक सरल प्रक्रिया है, जिसके लिए आपको पहले नए ट्विटर अकाउंट के लिए साइन अप करना होगा। ध्यान दें कि खाते को सत्यापित करने के लिए इसके लिए एक फ़ोन नंबर भी आवश्यक है, और एक बार ऐसा करने के बाद, एप्लिकेशन बनाने के लिए developer.twitter.com पर जाएं।
यदि आपके पास कोई डेवलपर खाता नहीं है, तो इसमें कुछ समय लग सकता है, क्योंकि निश्चित मात्रा में फॉर्म भरना आवश्यक है। यह एक कदम है जो ट्विटर ने स्पैम से बचने के लिए उठाया है, इसलिए अपना समय लें और प्रश्नों के सही उत्तर दें।
एक एप्लिकेशन बनाएं पर क्लिक करें, और अनुरोध के अनुसार विवरण जोड़ें। लेखन के समय, डेवलपर प्रणाली ओवरहाल से गुजर रही है, इसलिए आपको कुछ दिनों का इंतजार करना पड़ सकता है (और कुछ अतिरिक्त सवालों का जवाब देना होगा)।
इसके बाद, कुंजी और टोकन टैब पर स्विच करें, और अनुमतियों के तहत पहुँच अनुमति प्राप्त करें और यह सुनिश्चित करें कि यह पढ़ें और लिखें (यदि संपादित करें का उपयोग करें ) पर सेट है। फिर कुंजी और टोकन पर जाएं और निम्नलिखित पर ध्यान दें:
- उपभोक्ता कुंजी
- उपभोक्ता रहस्य
एक्सेस टोकन के तहत, जेनरेट करने के लिए क्लिक करें :
- एक्सेस टोकन
- टोकन सीक्रेट एक्सेस करें
ये एपीआई कुंजी हैं जो आपको अपने ट्विटर अकाउंट पर बॉट एक्सेस देने के लिए चाहिए होंगी।
वापस कमांड लाइन में, नैनो में 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' पढ़ता है, अपने संबंधित API कुंजी विवरणों को प्रतिस्थापित करें।
सहेजें और बाहर निकलें, फिर 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) });
इसे ऐसा दिखना चाहिए:
फिर से, सहेजें और बाहर निकलें, फिर कमांड लाइन में, दर्ज करें
node server.js
परिणाम देखने के लिए ब्राउज़र में अपना ट्विटर खाता खोलें:
आपने पुष्टि की है कि बॉट ट्वीट कर रहा है, इसलिए यह कुछ करने का समय है!
छवियों के अपने फ़ोल्डर बनाएँ
फ़ोटो को ट्वीट करने के लिए, आपके द्वारा एकत्र किए गए चित्रों को एक फ़ोल्डर (आमतौर पर नामित छवियों ) में कॉपी करें। एक दर्जन से शुरुआत करें।
अगला, server.js दस्तावेज़ पर लौटें:
sudo nano server.js
यहां, ट्वीट को भेजने वाले कोड को हटा दें, जो शुरुआत T.post ('स्टेटस / अपडेट') है।
इसके बाद, इसे random_from_array नामक फ़ंक्शन से बदलें । यह छवि फ़ोल्डर से यादृच्छिक पर एक छवि चुन लेगा।
function random_from_array(images){ return images[Math.floor(Math.random() * images.length)]; }
एक बार ऐसा करने के बाद, आपको एक दूसरा फ़ंक्शन जोड़ना होगा, 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!'); } } ); } }); }
यह फ़ंक्शन छवियों के फ़ोल्डर से यादृच्छिक पर एक छवि चुनता है, और एक बार चुने जाने पर मीडिया / अपलोड एपीआई का उपयोग करके ट्विटर पर अपलोड किया जाता है।
इसके बाद, निम्न कोड जोड़ें। यह इमेजेस डायरेक्टरी को ढूंढ लेगा, और इसमें से एक इमेज लेगा, जिसे हर 60 सेकंड में रैंडम पोस्ट किया जाएगा। आप इस समय को संपादित (और कर सकते हैं), जिसे 60000 की संख्या के साथ कोड में दर्शाया गया है। लंबे अंतराल उचित हैं।
setInterval(function(){ upload_random_image(images); }, 60000); } });
इसे Ctrl + X से सेव करें, फिर सेव करने के लिए हां। (आप इस प्रोजेक्ट के लिए पूरा कोड GitHub पर पा सकते हैं)।
नोड Server.js कमांड का एकल उपयोग तब फोटो को ट्वीट करना शुरू करने के लिए संकेत देगा! (क्या आपको पोस्टों को समाप्त करने की आवश्यकता है, सर्वर + जेएस स्क्रिप्ट को रद्द करने के लिए Ctrl + Z दबाएं ।)
अपने फोटो ट्वीट्स में पाठ जोड़ना
यदि आपको अपनी छवियों में पाठ जोड़ने की आवश्यकता है, तो यह एक सरणी का उपयोग करके किया जा सकता है। सरणी छवियों के फ़ाइल नाम को संदर्भित करेगी और उस पाठ को सूचीबद्ध करेगी जिसे जोड़ा जाना चाहिए। उदाहरण के लिए, आप उन छवियों के लिए अटेंशन जोड़ सकते हैं जिन्हें आपने नहीं लिया था। या आप कुछ तथ्य या एक उद्धरण जोड़ सकते हैं।
Images.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' }, ]
प्रत्येक छवि के लिए आवश्यक दोहराएं, फिर images.js फ़ाइल को समाप्त करें:
module.exports = images;
फ़ाइल सहेजें और बंद करें, फिर server.js को फिर से खोलें, और इसे चर की सूची में जोड़ें:
images = require(path.join(__dirname, 'images.js'));
सहेजें और बाहर निकलें, फिर नोड सर्वर के साथ ट्विटर बॉट को पुनरारंभ करें। एक बार फिर कमांड।
आप चित्र की पृष्ठभूमि को समझाते हुए, कुछ पाठ को शामिल करने के लिए "स्रोत" फ़ील्ड का उपयोग भी कर सकते हैं। इसे URL के साथ शामिल किया जा सकता है।
आपका पहला ट्विटर बॉट, पुन: उपयोग के लिए तैयार!
अब तक, आपको अपने पोस्ट किए गए विषय पर फ़ोटो, तथ्य, और विशेषताओं को साझा करते हुए एक ऑटो-पोस्टिंग ट्विटर बॉट होना चाहिए।
संक्षेप में, प्रक्रिया है:
- अपनी तस्वीरें लीजिए
- Node.js स्थापित करें
- अपना ट्विटर बॉट बनाएं
- ट्विटर पर डेवलपर की स्थिति के लिए आवेदन करें
- एक ट्विटर ऐप बनाएं
- एक अटेंशन ऐरे को जोड़ें
- ट्वीट करना शुरू करो!
शायद इस बारे में सबसे अच्छी बात यह है कि कोड का उपयोग फोटो, तथ्यों और विशेषताओं को ट्वीट करने के लिए किया जा सकता है।
जानना चाहते हैं कि एक समान सेटअप के साथ आप कौन से अन्य बॉट चला सकते हैं? रास्पबेरी पाई 10 के लिए सर्वश्रेष्ठ ट्विटर बॉट परियोजनाओं की हमारी सूची की जाँच करें। रास्पबेरी पाई के लिए सर्वश्रेष्ठ ट्विटर बॉट परियोजनाएँ। रास्पबेरी पाई के लिए सर्वश्रेष्ठ 10 ट्विटर परियोजनाएँ और पढ़ें!
इसके बारे में अधिक जानें: DIY प्रोजेक्ट ट्यूटोरियल, जावास्क्रिप्ट, रास्पबेरी पाई, ट्विटर।