لماذا يجب أن يكون لديك روبوت Twitter الخاص بك ، وكيفية إنشاء واحد في أقل من 30 دقيقة

تحديث 20171102: منذ أن تم نشر هذه القصة في الأصل في يناير 2017 ، كانت هناك بعض الأشياء التي تغيرت مع المستودع على GitHub ، إذا كنت ستتابع على طول ، فأقترح استخدام المستودع README.mdجنبًا إلى جنب مع هذه القصة للحفظ أي لبس.

يمكن لروبوتات Twitter أن تفعل أكثر بكثير من مجرد علامات تصنيف تتجه إلى البريد العشوائي وتتابع المستخدمين بلا هوادة.

استخدم روبوت تنبيهات Twisst ISS ، والذي يرسل لك رسالة مباشرة عندما تكون محطة الفضاء الدولية (ISS) مرئية في موقعك.

أو روبوتات الخدمة العامة مثل Earthquake Robot ، التي تغرد عن أي زلزال أكبر من 5.0 على مقياس ريختر فور حدوثه.

وبالطبع روبوت يقوم بتغريد الشعر ، poem.exe ، إلى جانب روبوت يعيد تغريد تغريداتك التي تصادف أيضًا أنها Haiku.

أنا شخصيًا أستخدم روبوتًا لتحسين حسابي علىScottDevTweets من خلال الإعجاب بالموضوعات التي أهتم بها وإعادة تغريدها.

سيهنئك تحدي مجتمع # 100DaysOfCode على بدء تحدي # 100DaysOfCode ، ومرة ​​أخرى عندما تصل إلى مراحل محددة.

سترد أيضًا بالتشجيع إذا اكتشفت المشاعر السلبية (الإحباط) في تغريدة تحتوي على علامة التصنيف # 100DaysOfCode فيها.

أحد الأسئلة التي أُطرحها في كثير من الأحيان في مقابلات العمل هو "ما الذي تحصل عليه من العمل مع التكنولوجيا؟" أجيب دائمًا بالقول "أحب أتمتة المهام المتكررة لتوفير الوقت حتى أتمكن من التركيز على أشياء أخرى. أنا أحب الشعور بالإنجاز الذي يأتي مع توفير بعض الوقت لنفسي ".

في حالة برنامجScottDevTweets الخاص بي ، عادة ما يكون ذلك بمثابة بداية لمحادثة مع شخص آخر يتبعني. حتى يتمكن الروبوت من بدء المحادثة ، ثم يمكنني المتابعة من حيث توقف الروبوت.

مع وضع هذا في الاعتبار ، يكون الروبوت أخلاقيًا مثل الشخص الذي قام ببرمجته.

إذا كانت لديك أي شكوك حول أخلاقيات الروبوت الذي تقوم ببنائه ، فراجع قسم الأخلاقيات في botwiki.

لذا ، هل أنت مستعد للبدء؟ حسنا. هيا بنا نقوم بذلك!

كيفية إنشاء Twitter Bot في 30 دقيقة

ستستخدم twitالمكتبة لإنشاء روبوت على Twitter. سوف يعجبك ويعيد تغريده مهما تحدده. سترد أيضًا على متابعيك بمجموعة مختارة من الردود الجاهزة.

قبل بدء الساعة ، ستحتاج إلى إعداد بعض الحسابات إذا لم تكن لديك بالفعل.

ماذا ستحتاج

  • تويتر
  • Cloud9 IDE
  • هيروكو

الخطوة # 1: قم بإعداد تطبيق Twitter

أنشئ حساب Twitter جديدًا أو استخدم حسابك الخاص لإنشاء تطبيق Twitter جديد.

على سبيل المثال ، سأقوم بتهيئة حساب TwitterDroidScott القديم الخاص بي حتى تتمكن من المتابعة.

تأكد من إضافة رقم هاتفك إلى حساب Twitter الخاص بك قبل النقر فوق الزر Create your Twitter application .

يجب أن تكون الآن في قسم "إدارة التطبيقات" ، حيث ستحتاج إلى تدوين مفاتيحك. يجب أن يكون لديك "مفتاح العميل (مفتاح واجهة برمجة التطبيقات)" و "سر العميل (سر واجهة برمجة التطبيقات)" متاحين بالفعل.

ستحتاج إلى التمرير إلى أسفل الصفحة والنقر فوق إنشاء رمز الوصول الخاص بي للحصول على "رمز الوصول" و "رمز الوصول السري" لتدوين كل منهم الأربعة الذي ستحتاج إليه عند إعداد الروبوت.

الخطوة رقم 2: قم بإعداد بيئة التطوير الخاصة بك

لهذا سأقول فقط استخدم Cloud9 حيث يمكنك أن تكون جاهزًا وتعمل في دقائق مع إحدى بيئات Node.js المعدة مسبقًا.

لاحظ أنه إذا اخترت استخدام Heroku و / أو Cloud9 IDE في بناء هذا (كما أفعل في هذا الدليل) في بعض المناطق ، فستتم مطالبتك بإعطاء رقم بطاقة ائتمان لإنشاء هذه الحسابات.

قم بإعداد الروبوت

في شجرة مشروع حذف الملفات سبيل المثال مشروع client، package.json، README.mdو server.jsعليك أن لا حاجة إليها، يمكنك تركها هناك إذا كنت ترغب في ذلك.

في بيئة Node.js c9 الجديدة ، انتقل إلى المحطة وأدخل:

git clone //github.com/spences10/twitter-bot-bootstrap

هيكل المشروع

يجب أن تبدو شجرة مشروع البيئة كما يلي:

تبعيات العقدة

قبل تكوين الروبوت ، سنحتاج إلى تثبيت التبعيات ، cd في مجلد المشروع حيث سينقلك cd tw*هذا :~/workspace/twitter-bot-bootstrap (master) $من Terminal إلى إدخال:

npm install

سيؤدي هذا إلى تثبيت جميع التبعيات المدرجة في package.jsonالملف.

إذا حصلت على أي أخطاء ، فأقترح تثبيت التبعيات واحدة تلو الأخرى من package.jsonالملف بنفس الأمر واسم الحزمة في النهاية:

فيما يلي مثال dependenciesعلى package,jsonالملف الموجود في الملف:

"dependencies": { "dotenv": "^4.0.0", "twit": "^2.2.5", "unique-random-array": "^1.0.0", "unirest": "^0.5.1" }

الأمر npm لتثبيتها جميعًا:

npm install --save dotenv twit unique-random-array unirest

إذا تلقيت أي WARNرسائل مثل npm WARN package.json [email protected] No repository fieldهذه فلن تؤدي إلى تعطيل الروبوت ، لذا من الآمن تجاهلها.

الآن يمكنك تكوين الروبوت. من المحطة أدخل:

npm init

سيؤدي هذا إلى تكوين package.jsonالملف بالتفاصيل الخاصة بك حسب الرغبة. فقط استمر في ضرب العائد إذا كنت راضيًا عن الإعدادات الافتراضية.

الآن ستحتاج إلى إضافة مفاتيح Twitter الخاصة بك إلى .envالملف. فقط أدخل المفاتيح في الحقول المقابلة واحفظ الملف.

If you can not find the .env file in the file structure of your c9 project then you will need to enable the Show Hidden Filesoption. In the file view select the settings cog then tick the Show Hidden Files option if it is not already checked.

The SENTIMENT_KEY you can get a new API key at //market.mashape.com/vivekn/sentiment-3 your key is in the REQUEST EXAMPLE

Take a look at the gif, click the link, sign up for or sign into mashape, click on node in the right hand panel and select out your API key, it will be in the space highlighted ed> in the gif.

Add your API key to the .env file along with your Twitter API keys ?

Here you should add your Twitter account name, and how often you want the bot to run the retweet and favorite functions in minutes.

NOTE none of the .env items have quotes '' round them.
CONSUMER_KEY=Fw***********P9CONSUMER_SECRET=TD************CqACCESS_TOKEN=31**************UCACCESS_TOKEN_SECRET=r0************S2SENTIMENT_KEY=Gj************lFTWITTER_USERNAME=DroidScottTWITTER_RETWEET_RATE=5TWITTER_FAVORITE_RATE=5

You can then add some keywords into the strings.js file for what you want to search for as well as sub-queries.

When adding sub-query strings make sure you leave a space at the beginning of the string so ' handy tip' gets concatenated onto 'node.js' as node.js handy tip and not node.jshandy tip.

That should be it, go to the terminal and enter npm start you should get some output:

Check the Twitter account:

Step #3: Setting up Heroku

Cool, now we have a bot that we can test on our dev environment but we can’t leave it there, we’ll need to deploy it to Heroku.

If you haven’t done so already set up a Heroku account then select Create a new app from the dropdown box top right of your dashboard, in the next screen name the app it if you want, then click Create App.

You’ll be presented with your app dashboard and instructions for the deployment method.

Your app name should be displayed on the top of your dashboard, you’ll need this when logging in with the Heroku command line interface, which we’ll use to deploy your app.

Heroku CLI

We’re going to deploy initially via the Heroku Command Line Interface (CLI).

On your c9 environment terminal, log into Heroku [it should be installed by default]

heroku login

Enter your credentials:

cd twitter-bot-bootstrap git init heroku git:remote -a your-heroku-app-name

Deploy your application:

git add . git commit -am 'make it better' git push heroku master

You should get build output in the terminal:

Then check the output with:

heroku logs -t

All good? Cool! ?

Configuring Heroku variables

Now that we have our bot on Heroku we need to add environment variables to store our Twitter keys. This is because the .env file where we stored our keys is listed in the .gitignore file, which tells git not to upload that file to Heroku. It also makes it so if in the future we want to add our code to GitHub we don't have to worry about the .env file making our keys public, because the file will automatically be ignored.

All you need to do is go to the console of your Heroku app and select the ‘Settings’ sections and add in your Twitter keys from the .env file. Click the 'Reveal Config Vars' button and add in the variables with their corresponding values:

CONSUMER_KEYCONSUMER_SECRETACCESS_TOKENACCESS_TOKEN_SECRETSENTIMENT_KEY

Once you have the Heroku vars set up, take a look at the config.js file of this project. You are going to delete this line:

require('dotenv').config();

You’re now ready to deploy to Heroku again. Your console commands should look something like this:

$ git add .$ git commit -m 'add environment variables'$ git push heroku master

Then you can check the Heroku logs again with:

$ heroku logs -t

You should now have a bot you can leave to do its thing forever more, or until you decide you want to change the search criteria ?

Heroku deployment via GitHub

You can also deploy your app by connecting to GitHub and deploy automatically to Heroku each time your master branch is updated on GitHub, this is straight forward enough.

Go to the ‘Deploy’ dashboard on Heroku, select GitHub as the deployment method if you have connected your GitHub account to your Heroku account then you can search for the repository so if you forked this repo then you can just enter twitter-bot-bootstrap and Search you can then click the Connect button, you can then auto deploy from GitHub.

Heroku troubleshooting

What do you mean it crashed!?

Ok, I found that sometimes the worker is set as web and it crashes out, try setting the worker again with:

heroku ps:scale worker=0 heroku ps:scale worker=1

If that still crashes out then try setting the Resources on the Heroku dashboard, I found if you toggle between the web, heroku and worker it usually settles down. Basically you need to be set to the worker Dyno this is what causes the Error R10 (Boot timeout) crashes because it's trying to use one of the other resources when it should be using the worker Dyno.

Other useful Heroku commands I use:

heroku restart

By default you can only push your master branch if you are working on a development branch i.e. dev branch. If you want to test on Heroku, then you can use:

git push heroku dev:master

Handy tip

If you want to add this to your own GitHub repo and don’t want to share your API keys ? with the world then you should turn off tracking on the .env file. From the terminal enter this git command:

$ git update-index --assume-unchanged .env

I have added my most used git command I use in this gist

Wrapping up

Your Twitter bot should now be live. You can tinker with it and further configure it.

Here’s my repository if you’d like to fork it and contribute back using pull requests. Any contributions large or small — major features, bug-fixes, integration tests — are welcome, but will be thoroughly reviewed and discussed.

Acknowledgements

Credit for the inspiration for this should go to @amanhimself and his posts on creating your own twitter bot.

create-a-simple-twitter-bot-with-node-js

how-to-make-a-twitter-bot-with-nodejs

twitter-mctwitbot

awesome-twitter-bots

Other posts detailing useful Twitter bots.

www.brit.co/twitter-bots-to-follow

www.hongkiat.com/using-twitter-bots

Made it this far? Wow, thanks for reading! If you liked this story, please don’t forget to recommend it by clicking the ❤ button on the side, and by sharing it with your friends through social media.

If you want to learn more about me, visit my blog, my Github, or tweet me @ScottDevTweets.

You can read other articles like this on my blog.