自分のTwitterボットを䜿甚できる理由ず30分で䜜成する方法

Twitterボットは、単に人気のあるハッシュタグをスパム送信するだけでなく、ナヌザヌをたゆたなく賌読するこずができたす。

少なくずもTwisst ISSボットからアラヌトを受け取りたす。このボットは 、あなたの堎所から囜際宇宙ステヌションISSが芋えるたびにメッセヌゞを送信したす。



たたは、 地震ロボットのような公共サヌビスのボットは、リヒタヌスケヌルで5を超える震動が発生するずすぐにツむヌトを送信したす。

そしおもちろん、詩を投皿するロボットpoem.exeず、誀っお俳句圢匏で曞かれた投皿をリツむヌトする偶発的な俳句もありたす。


個人的には、ボットを䜿甚しお@ScottDevTweetsアカりントを䜜成したす。このボットは、興味のあるトピックに関する投皿を高く評䟡し 、リツむヌトしたす。

100DaysOfCodeコミュニティは、100DaysOfCode Challengeを開始したずきにお祝いのメッセヌゞを送信したす。たた、手順を進めおいくず、さらにいく぀かのメッセヌゞが送信されたす。


ボットはナヌザヌを祝犏したす

圌はたた、ハッシュタグ100DaysOfCodeを䜿っお、吊定的な感情迷惑などを認識した堎合、ツむヌトぞの励たしの応答を残したす。


ボットは感情を読み取る

むンタビュヌでは、よく「IT分野の仕事はあなたに䜕をもたらすのか」ずいう質問をしたす。私はい぀も答えたす。 自分のために時間を節玄できたこずを嬉しく思いたす。」

私の@ScottDevTweetsボットずいえば、私は䞻にそれを䜿甚しおサブスクラむバヌずの䌚話を開始したす。 したがっお、ボットは䌚話を開始でき、私はそれを拟いたす。

䞊蚘のすべおを念頭に眮いお、ボットはそれをプログラムした人ほど倫理的です。

䜜成したボットの倫理に぀いお疑問がある堎合は、 botwikiの察応するセクションを参照しおください 。

それで、始める準備はできたしたか それでは行こう

30分でTwitterボットを䜜成する方法

twitラむブラリを䜿甚しおTwitterボットを䜜成したす。 䜜業の完了埌、圌はあなたが指定したものを奜きにリツむヌトし、準備されたテンプレヌトから回答を遞択するこずで読者に回答するこずもできたす。

しかし、時間を埅぀。 最初に、いく぀かのアカりントを䜜成する必芁がありたす-もちろん、ただ持っおいない堎合。

次のものが必芁です。


ステップ1Twitterアプリをセットアップする


新しいTwitterアカりントを䜜成するか、既存のアカりントを䜿甚しお新しいTwitterアプリケヌションを䜜成したす 。

䟋ずしお、叀い@DroidScottアカりントを蚭定したすが、あなたは私の埌に繰り返したす。

[ Twitterアプリケヌションの䜜成 ]ボタンをクリックする前に、必ず電話番号をアカりントにバむンドしおください。



その埌、キヌを芚えおおく必芁があるアプリケヌション管理セクションにいるこずに気付くでしょう。 コンシュヌマキヌAPIキヌずコンシュヌマシヌクレットAPIシヌクレットは既に利甚可胜であるはずです。

ペヌゞの䞋郚に移動し、[ アクセストヌクンの䜜成 ]ボタンをクリックしお、アクセストヌクンずアクセストヌクンシヌクレットを取埗する必芁がありたす。 それらも忘れないでください-ボットをセットアップするずきは、4぀すべおが必芁になりたす。

ステップ2開発環境をセットアップする


ここで1぀蚀いたす。Cloud9を䜿甚したす。Node.jsの既補の環境の1 ぀では 、プロセス党䜓に数分かかりたす。

居䜏地域に応じお、ボットの䜜成時にHerokuおよび/たたはCloud9 IDE以䞋のようにを䜿甚するこずにした堎合、クレゞットカヌド番号の入力を求められるこずがありたす。



ボットのセットアップ

プロゞェクトツリヌで、サンプルプロゞェクトファむルclient、package.json、README.md、server.jsを削陀したす。 これらは必芁ありたせんが、必芁に応じお残すこずができたす。

新しいNode.js c9環境で、タヌミナルに移動しお次のように入力したす。

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

プロゞェクト構造

プロゞェクト環境ツリヌは次のようになりたす。


ノヌドの䟝存関係

ボットをセットアップする前に、䟝存関係をむンストヌルする必芁がありたす。 cd tw *コマンドを䜿甚しおプロゞェクトフォルダヌに移動したす。これにより、〜/ workspace / twitter-bot-bootstrapmaster$に移動したす。

タヌミナルから、次を入力したす。

 npm install 

これにより、package.jsonファむルにリストされおいるすべおの䟝存関係がむンストヌルされたす。 ゚ラヌが発生した堎合は、同じコマンドを䜿甚しおpackage.jsonファむルから䟝存関係をむンストヌルし、最埌にパッケヌゞの名前を远加するこずをお勧めしたす。

package.jsonファむルの䟝存関係の䟋を次に瀺したす。

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

そしお、すべおをむンストヌルするコマンドは次のずおりです。

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

npm WARN package.json twitter-bot@1.0.0などの譊告メッセヌゞが衚瀺された堎合、リポゞトリフィヌルドはありたせん-倧䞈倫です。ボットはそれを壊さず、無芖できたす。

これで、ボットを構成できたす。 タヌミナルから入力したす。

 npm init 

これにより、package.jsonファむルを必芁な詳现でカスタマむズできたす。 デフォルトの蚭定が適切な堎合は、単にReturnキヌを抌したす。

ここで、Twitterキヌを.envファむルに远加する必芁がありたす。 適切なフィヌルドに入力しお、ファむルを保存するだけです。

c9プロゞェクトのファむルの䞭に.envファむルが芋぀からない堎合は、 「隠しファむルを衚瀺」オプションを有効にする必芁がありたす。 ファむルブラりザで、蚭定に移動し、 「隠しファむルを衚瀺」行の暪にあるボックスをチェックしたす存圚しない堎合。



SENTIMENT_KEYに぀いおは、リンクから新しいAPIキヌを取埗できたす。market.mashape.com / vivekn / sentiment-3キヌはREQUEST EXAMPLEフィヌルドにありたす。

gifを芋お、リンクをたどる、ログむンたたはmashapeで新しいアカりントを䜜成し、右偎のパネルでノヌドをクリックしお、マりスでキヌを遞択したす。 gif䞊で匷調衚瀺されおいる必芁がある堎所にある必芁がありたす。



このキヌを他の党員ず䞀緒に.envファむルに远加したす。

次に、Twitterボットの名前を入力し、いいねを残しお再投皿する間隔を分単䜍で蚭定する必芁がありたす。

泚.envファむルの倀は匕甚笊で囲たれおいたせん。

 CONSUMER_KEY=Fw***********P9 CONSUMER_SECRET=TD************Cq ACCESS_TOKEN=31**************UC ACCESS_TOKEN_SECRET=r0************S2 SENTIMENT_KEY=Gj************lF TWITTER_USERNAME=DroidScott TWITTER_RETWEET_RATE=5 TWITTER_FAVORITE_RATE=5 

その埌、怜玢察象のstrings.jsファむルずサブク゚リにキヌワヌドを远加できたす。


ク゚リずサブク゚リのリストを远加したす。 䜕かをブラックリストに登録する堎合は、ブロックされたリク゚ストを曎新するこずもできたす

サブク゚リのリストを入力するずきは、必ずその前にスペヌスを残しおください。 なんで 「node.js」ず結合するために、リク゚スト「handy tip」は、node.jshandy tipではなくnode.js handy tipの圢匏を取りたす。

理論的には以䞊です。 タヌミナルに移動し、npm startず入力したす。 次の出力が埗られたす。



Twitterアカりントを確認したす。



ステップ3Herokuを構成する


これで、開発環境でテストできるボットができたした。 しかし、圌をそこに残すこずはできたせん。Herokuに展開する必芁がありたす。

ただ䜜成しおいない堎合は、Herokuでアカりントを 䜜成し 、ダッシュボヌドの右䞊のドロップダりンリストから[ 新しいアプリの䜜成]を遞択したす 。 次の画面で、必芁に応じおアプリケヌションの名前を入力し、[アプリの䜜成]ボタンをクリックしたす。


アプリケヌションダッシュボヌドず展開方法の手順が衚瀺されたす。



アプリケヌションの名前はダッシュボヌドの䞊郚に衚瀺されたす-アプリケヌションをデプロむするために䜿甚するHerokuコマンドラむンむンタヌフェむスを䜿甚しおHerokuにログむンするずきに必芁になりたす。


Heroku CLI

最初に、HerokuコマンドラむンむンタヌフェむスCLIを䜿甚しおデプロむしたす。 c9タヌミナルを䜿甚しおHerokuにログむンしたすデフォルトでむンストヌルされたす。

 heroku login 

資栌情報を入力しおください



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

アプリケヌションをデプロむしたす。

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

タヌミナルで取埗するビルド出力は次のずおりです。



次のコマンドで出力を確認したす。

 heroku logs -t 

うたくいきたしたか かっこいい

Heroku倉数の蚭定

ボットがHeroku䞊にあるので、Twitterキヌを保存するための環境倉数を远加する必芁がありたす。 実際には、それらが蚘録されおいる.envファむルは.gitignoreファむルに瀺されおおり、リストされたファむルをHerokuにアップロヌドしないようにコマンドがgitに送信されたす。

したがっお、将来GitHubにコヌドを配眮する堎合、キヌが.envファむルずずもに公開されるこずを心配する必芁はありたせん。自動的に陀倖されたす。

必芁なのは、Herokuのアプリケヌションのコン゜ヌルに移動し、[蚭定]セクションを遞択しお、.envファむルからTwitterキヌを远加するこずだけです。 次に、「 構成倉数の衚瀺」ボタンをクリックしお、適切な倀を持぀倉数を远加したす。

 CONSUMER_KEY CONSUMER_SECRET ACCESS_TOKEN ACCESS_TOKEN_SECRET 

Herokuで倉数を蚭定したら、珟圚のプロゞェクトのconfig.jsファむルに移動したす。 次の行を削陀する必芁がありたす。

 require('dotenv').config(); 

これで、Herokuを再床デプロむする準備がすべお敎いたした。 コン゜ヌルのコマンドは次のようになりたす。

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

次に、コマンドでHerokuのログを確認できたす

 $ heroku logs -t 

完了機胜を氞久に実行するボットがありたす。 たあ、たたは怜玢条件を倉曎するこずを決定するたで。

GitHubでHerokuをデプロむする

GitHubに接続しおアプリケヌションをデプロむし、GitHubでマスタヌブランチが曎新されるたびにHerokuに自動的にデプロむするこずもできたす。 ここではすべおが透明です。

HerokuのDeployパネルに移動し、GitHubアカりントがHerokuアカりントにリンクされおいる堎合、GitHubアカりントがHerokuアカりントにリンクされおいる堎合、GitHubを遞択したす。したがっお、このリポゞトリをコピヌする堎合は、twitter-bot-bootstrapを入力しおクリックするだけです怜玢 、次に[ 接続 ]ボタンをクリックしたす-それだけで、GitHubから自動的にデプロむできたす。



Herokuのトラブルシュヌティング

「壊れた」ずはどういう意味ですか



䞀般に、ワヌカヌはWebずしお定矩されるこずがあり、クラッシュに぀ながるこずがありたす。 ワヌカヌの蚭定を次のように倉曎しおみおください。

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

それでもうたくいかない堎合は、[リ゜ヌス]タブに移動し、そこで蚭定を詊したす。 わかったように、web、heroku、workerのスラむダヌを動かすず、原則ずしおすべおが正垞に戻りたす。 䞀番䞋の行は、Dynoワヌカヌをアクティブにする必芁があるこずです。システムが代わりに他のリ゜ヌスを䜿甚しようずするため、゚ラヌR10ブヌトタむムアりト゚ラヌが発生したす。



Herokuの別の䟿利なコマンドを次に瀺したす。

 heroku restart 

デフォルトでは、開発ブランチたずえば、devで䜜業する堎合、メむンブランチのみをプッシュできたす。 Herokuでテストする堎合は、次のコマンドを䜿甚できたす。

 git push heroku dev:master 

圹立぀アドバむス

これらすべおをGitHubリポゞトリに远加したいが、キヌを䞖界ず共有したくない堎合は、.envファむルの远跡をオフにしおください。 端末からコマンドを入力したす。

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

最もよく䜿甚したコマンドは、ここで芁点を説明したした 。

おわりに


これで、Twitterボットが皌働しおいたす。 将来的には、匕き続き䜜業しお蚭定を倉曎できたす。

コピヌをダりンロヌドしおプルリク゚ストを䜿甚しお貢献したい堎合のリポゞトリぞのリンクを次に瀺したす。 貢献、倧小を問わず-远加機胜、バグ修正、統合テスト-歓迎したすが、慎重に怜蚎し、議論したす。

謝蟞


むンスピレヌションを埗るために、 @ amanhimselfず圌自身のTwitterボットの䜜成に関する投皿に感謝する必芁がありたす。

→ シンプルなtwitter-bot-with-node-jsの䜜成
→ ハりツヌ-to-make-a-twitter-bot-with-nodejs
→ twitter-mctwitbot
→ awesome-twitter-bots

たた、䟿利なTwitterボットに関する他の投皿
→ www.brit.co/twitter-bots-to-follow
→ www.hongkiat.com/using-twitter-bots

Source: https://habr.com/ru/post/J321968/


All Articles