どのようにコードの17行でシンプルなツイッターボットを構築する


数ヶ月前、私はこのツイッターボットを作成しました.何か?それは17行のコードだけでした.私がこれを共有している理由は、私がそれが狂っていると思うので、オンラインサービスがあなたがちょうどあなた自身を造ることができるとき、BOTをつくる単純なツールのために少なくとも15ドルを請求する方法です.それで、あなたは準備ができていますか?
ここでは、BOTをビルドするために使用します.
  • ノード.js — インストールhttps://nodejs.org/en/
  • ねじり — TwitterのAPIクライアントのノード(私を信じて、それはツイート).https://github.com/ttezel/twit
  • aaaandそれは基本的にそれです.

    アプリケーションの作成
    我々はコードを書くに入る前に、我々の設定をTwitterのアプリケーションにする必要があります.あなたはそれを行うことができます.を押して“新しいアプリを作成”ボタンをクリックすると、これはあなたが表示されます何です

    情報を入力します.あなたがウェブサイトを「ウェブサイト」フィールドに置く必要がないならば、あなたはちょうど書くことができますhttps://www.example.com .
    一度アプリケーションを作成すると、“キーとアクセストークン”タブに注意する4つの重要なことがあります
  • 消費者キー
  • 消費者秘密
  • アクセストークンキー
  • アクセストークン
  • あなたの「アクセストークンキー」と「アクセストークン秘密」を見ないならば、ちょっと「私のアクセストークンをつくってください」ボタンをクリックしてください、そして、あなたはセットされます.

    プロジェクトの初期化
    あなたのTwitterボットのための新しいディレクトリにCMDまたは端末とCDを開き、コマンドを実行します.
    npm init
    
    と情報を入力します.次に、適切な依存関係をインストールする必要があります.
    npm install twit --save
    
    では、インデックスと呼ばれるディレクトリにファイルを作成します.JS畝
    注意:エントリポイントを変更した場合npm init 次に、ファイル名がpackage.json . あなたが何も変えなかったならば、心配しないでくださいindex.js .

    楽しいへんパート
    あなたの好みの空白のテキストエディタを開き、TwitterのAPIにリクエストをするために使用できるツイートのインスタンスを作成します.設定は次のようになります.
    var Twit = require('twit')
    var T = new Twit({
        consumer_key:         ' ... ',
        consumer_secret:      ' ... ',
        access_token:         ' ... ',
        access_token_secret:  ' ... ',
    })
    
    置換する' ... ' あなたの消費者とアクセスキーで.
    次に、あなたがretweetしたいユーザの文字列IDを保持する配列を作成します.
    var users = ["10228272", "155659213", "783214"];
    
    今、フォームにあるストリームを作成しますT.stream(path, [params]) :
    var stream = T.stream('statuses/filter', {follow: users});
    
    キーの2番目のパラメータに注意してくださいfollow 値を変数として設定しますusers .
    さあ、イベントつぶやきが解雇されると、そのストリームを聞きます.
    stream.on('tweet', function (tweet) {
        if (users.indexOf(tweet.user.id_str) > -1) {
            console.log(tweet.user.name + ": " + tweet.text);
            T.post('statuses/retweet/:id', { id: tweet.id_str }, function (err, data, response) {
                console.log(data)
            })
        }
    })
    
    この関数は、ステータス( Tweet )がストリームに入るたびに発行されます.行2は、ツイートされたユーザのIDが配列に存在することを保証するために必要であるusers .
    行4は基本的にツイートを使用してツイートにツイートを使用していますid of tweet.id_str . つぶやきオブジェクトの他のプロパティをチェックしたい場合は、以下のようにします.

    ボットを走らせてください!
    それは基本的に、あなただけのコードの17行であなたの最初のTwitterボットを作成!実行するには、このコマンドをcmdまたはterminalで実行します.
    node index.js
    

    将来更新
    あとで別のポストを書きます.Herokuにボットを展開する方法を説明します.そうすれば、ローカルシステム24/7でそれを実行する必要はありません.

    最終コード
    var Twit = require('twit')
    var T = new Twit({
        consumer_key:         ' ... ',
        consumer_secret:      ' ... ',
        access_token:         ' ... ',
        access_token_secret:  ' ... ',
    })
    var users = ["10228272", "155659213", "783214"];
    var stream = T.stream('statuses/filter', {follow: users});
    stream.on('tweet', function (tweet) {
        if (users.indexOf(tweet.user.id_str) > -1) {
            console.log(tweet.user.name + ": " + tweet.text);
            T.post('statuses/retweet/:id', { id: tweet.id_str }, function (err, data, response) {
                console.log(data)
            })
        }
    })