<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>リフォロー - プログラミングで遊ブログ</title>
	<atom:link href="https://lemon818.com/tag/%E3%83%AA%E3%83%95%E3%82%A9%E3%83%AD%E3%83%BC/feed/" rel="self" type="application/rss+xml" />
	<link>https://lemon818.com</link>
	<description>現役システムエンジニアが趣味でプログラミングする自由気ままなブログ</description>
	<lastBuildDate>Fri, 02 Jul 2021 21:58:39 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>	<item>
		<title>3か月で 0→500フォロワーに育つ Twitter 自動 bot の作り方【Python】</title>
		<link>https://lemon818.com/python-twitter-bot/</link>
		
		<dc:creator><![CDATA[Take]]></dc:creator>
		<pubDate>Mon, 21 Jun 2021 15:13:30 +0000</pubDate>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[ツイート]]></category>
		<category><![CDATA[リツイート]]></category>
		<category><![CDATA[リフォロー]]></category>
		<category><![CDATA[リムーブ]]></category>
		<category><![CDATA[作り方]]></category>
		<category><![CDATA[自動]]></category>
		<guid isPermaLink="false">https://lemon818.com/?p=5899</guid>

					<description><![CDATA[ああ～～、一億人くらい俺のTwitterをフォローしてくれんかな。。。 &#160; Twitter でアカウントを作りはじめたころ、誰もフォローしてくれない日々。。。 誰しも一度は「めちゃくちゃフォロワー欲しい！」って…]]></description>
										<content:encoded><![CDATA[<div class="sc_frame_wrap solid yellow">
<div class="sc_frame "><strong><span style="color: #000000;">ああ～～、一億人くらい俺のTwitterをフォローしてくれんかな。。。</span></strong></div>
</div>
<p>&nbsp;</p>
<p>Twitter でアカウントを作りはじめたころ、誰もフォローしてくれない日々。。。</p>
<p>誰しも一度は「<strong>めちゃくちゃフォロワー欲しい！</strong>」って思いませんでした？</p>
<p>&nbsp;</p>
<p>そんなある日私は<strong> Python </strong>というプログラミングで<strong> Twitter 上に Bot </strong>をつくり</p>
<p><strong>「<span style="background-color: #ffff00;">3か月間、自動でどれくらいフォロワーが増えるのか？</span>」検証してみました！</strong></p>
<p>その検証結果がこれ！↓</p>
<p>&nbsp;</p>
<p><img fetchpriority="high" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-python1.png" alt="" width="551" height="477" class="aligncenter wp-image-5900" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-python1.png 646w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-python1-300x260.png 300w" sizes="(max-width: 551px) 100vw, 551px" /></p>
<p>&nbsp;</p>
<p>割と育っとる。。</p>
<p>たぶん読者の中には「<strong>どこかでみた安っぽい Botだな</strong>」と思われた方もいるかもしれません。</p>
<p>しかし <span style="font-size: 28px;"><strong style="color: #3366ff;">3か月間完全放置で 0フォロワー → 500 フォロワーまで育ちました！！</strong><strong style="color: #3366ff;">！！</strong></span></p>
<p>&nbsp;</p>
<div class="voice clearfix left n_bottom">
<div class="icon">
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2019/07/hukurou.jpg" /></p>
<div class="name"></div>
</div>
<div class="text sc_balloon left white">この記事を書くためだけに3か月育ててきたのに、<br />
書くのを忘れてた上に、3か月<span style="color: #ff0000;"><strong><span style="color: #000000;">完全放置していたら</span>フォロワーが456に減りました</strong></span>・・・<br />
ポンコツすぎてすみません。。。</div>
</div>
<p>&nbsp;</p>
<p>この Bot の機能ですが、これだけです！！</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>毎日の自動ツイート</li>
<li>指定した「検索ワード」にヒットするユーザを自動フォロー</li>
<li>指定した「検索ワード」にヒットするツイートを自動リツイート</li>
<li>フォローしてくれた人を自動リフォロー</li>
<li>フォロバになれなかった人を自動リムーブ</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>たぶん上記の機能だけで <span style="text-decoration: underline;">Twitter Bot としては必要な機能は一通り満たしている</span>と思っています。</p>
<p>また今回下記機能についてはわざと追加しませんでした。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap red">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid red">
<ol>
<li>「自動いいね」・・・<span style="color: #ff0000;"><strong> Twitter 上では禁止されている</strong></span>ので実現していません。</li>
<li>フォロー返しのDMメッセージ（フォローしてくれてありがとうってメッセージを送る）・・・ダイレクトメッセージを送ることが送信先アカウントの同意が必要らしく DM を勝手に送りまくると違反行為になるらしい（同意があれば送信可）ので実現しませんでした。</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>せっかく BOT つくったのに<span style="color: #ff0000;"><strong>アカウント停止になったら悲しい</strong></span>ので上記の機能はやめておきました。</p>
<p>※ 参考：<a href="https://help.twitter.com/ja/rules-and-policies/twitter-automation">Twitterルール</a></p>
<p>&nbsp;</p>
<p>この記事では作成した <strong>Python  というプログラミング言語をつかって自作した Twitter Bot の作り方~動かし方まですべて</strong>をご紹介します。</p>
<p>よければぜひ見ていってください。</p>
<p>&nbsp;</p>
<h2>Twitter Bot を作るための手順まとめ</h2>
<p>Twitter Bot を作成する上での手順はこんな感じです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap block blue">
<div class="sc_frame_title">手順まとめ！</div>
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>Twitter Bot 用のアカウントを作成する</li>
<li>Twitter 公式ページへ API 利用申請する</li>
<li>API 申請許可が通ったら API を利用するための「Consumer Keys」 と「Authenications Tokens」を取得</li>
<li>Python で Twitter API をつかって Twitter Bot を作成する</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>こんな感じの流れです。</p>
<p>これを順に説明していきます。</p>
<p>&nbsp;</p>
<h2>Twitter Bot 用のアカウントを作成する</h2>
<p>まずは Twitter Bot 用のアカウントを新たに作ります。</p>
<p>これは説明不要と思いますが、<a href="https://twitter.com/">Twitter 公式ページ</a>からアカウントを作成するだけです。</p>
<p>&nbsp;</p>
<p><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register.png" alt="" width="887" height="362" class="aligncenter wp-image-5925" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register.png 1572w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-300x123.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-1024x418.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-768x314.png 768w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register-1536x627.png 1536w" sizes="(max-width: 887px) 100vw, 887px" /></p>
<p>&nbsp;</p>
<p>アカウントには特段難しい設定はいらず、普通のアカウントでOKです。</p>
<p>ただしアカウント作成にはメールアドレスが必要なので <a href="https://www.google.com/intl/ja/gmail/about/">Gmail</a> で作成することをおススメします。</p>
<p>&nbsp;</p>
<h2>Twitter 公式ページへ API 利用申請する（例文も記載）</h2>
<p>つぎに Twitter で自動でツイートしたりするための機能（API）を利用するために Twitter 公式ページ に 申請をします、</p>
<p><span style="color: #ff0000;"><strong>これが結構めんどくさいです。</strong></span></p>
<p><span style="color: #ff0000;"><span style="color: #000000;">※ やり方は別ページにしています。必要な方はぜひ見てください。</span></span></p>
<div class="sc_getpost"><a class="clearfix" href="https://lemon818.com/twitter-api/" ><div class="sc_getpost_thumb post-box-thumbnail__wrap"><img decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/Twitter_1624288912-150x150.jpg" width="150" height="150" alt="英語苦手でもできる Twitter API の利用申請方法（例文付き）！"></div><div class="title">英語苦手でもできる Twitter API の利用申請方法（例文付き）！</div><div class="date">2021.6.26</div><div class="substr">Twitter の自作 Bot を作ってみたい！ Twitter で自動ツイートとか自動いいねとかいろいろとやってみたい！... けど ... 実際にどうやってやるの？  Twitterで自動ツイートやBotをつくるためには「Twitter API 」を利用する必要があります。  「Twitter ...</div></a></div>
<p>&nbsp;</p>
<h2>Twitter API の「Consumer Keys」 と「Authenications Tokens」を取得</h2>
<p>「Consumer Keys」 と「Authenications Tokens」とは<strong> Twitter API を利用するための認証キーとアクセストークン</strong>のことです。</p>
<p>&nbsp;</p>
<div class="sc_designlist li fa_check orange">
<ul>
<li>Consumer Keys ・・・ Twitter API 用の認証キー（Twitter 自動化ツールごとに1つあればOK）</li>
<li>Authenications Tokens ・・・ ユーザ用のアクセストークン情報（アカウントごとに1つあればOK）</li>
</ul>
</div>
<p>&nbsp;</p>
<p>Twitter API の承認が通っていれば <a href="https://developer.twitter.com/en/apps/">Twitter Developer ページ</a>にアクセスし、「Project &amp; Apps 」から「Consumer Keys」 と「Authenications Tokens」が確認できます。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13.png" alt="" width="964" height="502" class="aligncenter wp-image-5955" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13.png 1235w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-300x156.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-1024x533.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-register13-768x400.png 768w" sizes="auto, (max-width: 964px) 100vw, 964px" /></p>
<p>&nbsp;</p>
<p>この「Consumer Keys」 と「Authenications Tokens」をどこかにメモしておきます。</p>
<p>これらは Twitter API を使う際に後で使います。</p>
<p>&nbsp;</p>
<p>これでようやくここから Twitter Bot を作成する準備はOKです。</p>
<p>&nbsp;</p>
<h2>Python で Twitter API をつかって Twitter Bot を作成する</h2>
<p>Twitter Bot を作成する上で今回実装する機能です。</p>
<p>Botというのは、いわばこれら↓の処理を毎日繰り返しループさせればOKです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>毎日の自動ツイート</li>
<li>指定した「検索ワード」にヒットするユーザを自動フォロー</li>
<li>指定した「検索ワード」にヒットするツイートを自動リツイート</li>
<li>フォローしてくれた人を自動リフォロー</li>
<li>フォロバになれなかった人を自動リムーブ</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<h3>Twitter API が簡単に扱える tweepy パッケージをインストール</h3>
<p>Twitter API を簡単に扱える tweepy パッケージを インストールします。</p>
<p>コマンドライン（Windowsならコマンドプロンプト、Mac なら Terminal）で下記を入力すればOKです。</p><pre class="crayon-plain-tag">pip install tweepy</pre><p>
&nbsp;</p>
<p>このコマンドが正常終了すればＯＫです。</p>
<p>あとは tweepy パッケージをつかって Twitter Bot を作成していきます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot の大枠（処理概要）</h3>
<p>まずはじめに Twitter Bot の処理の大枠をつくっていきます。</p>
<p><a href="https://developer.twitter.com/en/apps/">Twitter Developer ページ</a>で取得した「Consumer Keys」 と「Authenications Tokens」を</p>
<p>consumer_key、consumer_secret、access_token_key、access_token_secret にそれぞれあてはめます。</p><pre class="crayon-plain-tag">import tweepy
import random

def main():

    consumer_key = 'XXXXXXXXXXXXXXXXXXX'
    consumer_secret = 'XXXXXXXXXXXXXXXXXXX'
    access_token_key = 'XXXXXXXXXXXXXXXXXXX'
    access_token_secret = 'XXXXXXXXXXXXXXXXXXX'

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    api = tweepy.API(auth)

    # ～ここより下にTwitter上で実行したい処理を書く～

if __name__ == "__main__":
    main()</pre><p>
&nbsp;</p>
<p>インポートするパッケージについては「tweepy」と「random」とします。</p>
<p>「random」は乱数を出力するパッケージで、ランダムな数だけツイート数やリツイート数するように調整しています。</p>
<p>&nbsp;</p>
<h3>Twitter Bot で自動ツイート</h3>
<p>まずは Twitter Bot で自動ツイートする方法です。</p>
<p>これは tweepy というパッケージの update_status メソッドでツイートができます。</p>
<p>update_status の引数にツイートする内容を指定すればOKです。</p><pre class="crayon-plain-tag"># ツイート 
api.update_status(msg)</pre><p>
&nbsp;</p>
<p>たとえば update_status('おはよう') とやれば Twitter上で「おはよう」とツイートできます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot で「検索ワード」にヒットするアカウントを自動フォロー</h3>
<p>Twitter では下記画像のように「検索機能」があります。</p>
<p>その検索にヒットしたアカウントを自動フォローする機能について説明します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search.png" alt="" width="461" height="346" class="aligncenter wp-image-5979" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search.png 620w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search-300x225.png 300w" sizes="auto, (max-width: 461px) 100vw, 461px" /></p>
<p>&nbsp;</p>
<p>これには二つの機能が必要です。</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>
<div>
<div><span>Twitter のキーワード検索した結果を取得する ・・・ tweepy の search</span><span>() メソッド</span></div>
</div>
</li>
<li>検索した結果から得られたアカウントをフォローする・・・ <span><span>tweepy の create_favorite</span></span><span>() メソッド</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><span>Twitter のキーワード検索した結果を取得する方法ですが、下記のように search() メソッドを使います。</span></p>
<p><span> search() には引数として「キーワード」と「検索結果数」を指定でき、その指定した値から得られた検索結果を取得できます。</span></p><pre class="crayon-plain-tag"># 検索結果を取得
search_results = api.search(q='キーワード', count=検索結果数)

api.update_status(msg)</pre><p>
&nbsp;</p>
<p>またアカウントをフォローする方法は下記のように <span>create_favorite() メソッドを使います。</span></p><pre class="crayon-plain-tag"># アカウントをフォローする
api.create_friendship(user_id)</pre><p>
&nbsp;</p>
<p><span>なお user_id とは search() メソッドで得られた ユーザID を示します。</span></p>
<p>&nbsp;</p>
<h3>Twitter Bot で「検索ワード」にヒットするツイートを自動リツイート</h3>
<p>これは先程と同様 Twitter の検索機能を使い検索した結果にヒットしたツイートを自動でリツイートする方法です。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search2.png" alt="" width="495" height="565" class="aligncenter wp-image-5980" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search2.png 625w, https://lemon818.com/wp/wp-content/uploads/2021/06/twitter-search2-263x300.png 263w" sizes="auto, (max-width: 495px) 100vw, 495px" /></p>
<p>&nbsp;</p>
<p>これには二つの機能が必要です。</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li>
<div>
<div><span>Twitter のキーワード検索した結果を取得する ・・・ tweepy の search</span><span>() メソッド</span></div>
</div>
</li>
<li>検索した結果から得られたツイートをリツイートする・・・ <span>tweepy の retweet</span><span>() メソッド</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><span>これは前章での内容と同じです。</span></p>
<p><span>Twitter のキーワード検索した結果を取得する方法ですが、下記のように search() メソッドを使います。</span></p>
<p><span> search() には引数として「キーワード」と「検索結果数」を指定でき、その指定した値から得られた検索結果を取得できます。</span></p><pre class="crayon-plain-tag"># 検索結果を取得
search_results = api.search(q='キーワード', count=検索結果数)

api.update_status(msg)</pre><p>
&nbsp;</p>
<p>またアカウントをフォローする方法は下記のように retweet<span>() メソッドを使います。</span></p><pre class="crayon-plain-tag"># アカウントをフォローする
api.retweet(tweet_id)</pre><p>
&nbsp;</p>
<p>なお tweet_idとは search() メソッドで得られた ツイートID を示します。</p>
<p>&nbsp;</p>
<h3>Twitter Bot でフォローしてくれたアカウントを自動リフォロー</h3>
<p>自分のアカウントをリフォロー（フォロー返し）する方法ですが、</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li><span style="color: #3366ff;"><strong>フォロワー</strong></span> と<span style="color: #ff0000;"><strong>フォロー</strong></span>の差分を取得 → <span style="color: #3366ff;"><strong>フォロワー</strong></span>にしかいないアカウントを取得</li>
<li>① で取得したアカウントを順にフォロー</li>
</ol>
</div>
<p>&nbsp;</p>
<p>まずは自分のアカウントのフォロワーとフォローを下記のように取得し、その差分を取ります。</p><pre class="crayon-plain-tag">#フォロワー数とフォロー数を格納するリストを用意
follower_list = []
friend_list = []

#ユーザ情報からフォロワー数を取得、格納
follower_list = api.followers_ids(my_user_id)

#ユーザ情報からフォロー数を取得、格納
friend_list = api.friends_ids(my_user_id)

# 差分を取得 
result_list = list(set(follower_list) - set(friend_list)))</pre><p>
&nbsp;</p>
<p>そのフォロワーとフォローの差分を result_list のようにリストにし</p>
<p>そのリストに含まれるアカウントを順にフォローしていけばOKです！</p><pre class="crayon-plain-tag">for user_id in result_list:
    cnt = cnt + 1
    try:
        if cnt &lt; maxReq : api.create_friendship(user_id)
    except Exception as e:
        print(e)</pre><p>
&nbsp;</p>
<p>なお Twitter のフォロー処理は tweepy の create_friendship メソッドで処理できます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot でフォロバになれなかった人を自動リムーブ</h3>
<p>自分のアカウントをフォローしてくれない人をリムーブ（フォローをはずす）する方法ですが、</p>
<div class="sc_designlist ol square solid blue">
<ol>
<li><span style="color: #3366ff;"><strong>フォロワー</strong></span> と<span style="color: #ff0000;"><strong>フォロー</strong></span>の差分を取得 → <span style="color: #ff0000;"><strong>フォロー</strong></span>にしかいないアカウントを取得</li>
<li>① で取得したアカウントを順にリムーブ</li>
</ol>
</div>
<p>&nbsp;</p>
<p>さきほどとは違い、今度は<span style="color: #ff0000;"><strong>フォロー</strong></span>にしかいないアカウントを取得することがポイントです。</p>
<p>まずは自分のアカウントのフォロワーとフォローを下記のように取得し、その差分を取ります。</p><pre class="crayon-plain-tag">#フォロワー数とフォロー数を格納するリストを用意
follower_list = []
friend_list = []

#ユーザ情報からフォロワー数を取得、格納
follower_list = api.followers_ids(my_user_id)

#ユーザ情報からフォロー数を取得、格納
friend_list = api.friends_ids(my_user_id)

# 差分を取得 
result_list = list(set(follower_list) - set(friend_list)))</pre><p>
&nbsp;</p>
<p>そのフォロワーとフォローの差分を result_list のようにリストにし</p>
<p>そのリストに含まれるアカウントを順にフォローしていけばOKです！</p><pre class="crayon-plain-tag">for user_id in result_list:
　　　cnt = cnt + 1
　　　try:
　　　　if cnt &lt; maxReq : api.destroy_friendship(user_id)
　　　except Exception as e:
　　　　print(e)</pre><p>
&nbsp;</p>
<p>なお Twitter のリムーブ処理は tweepy の destroy_friendship メソッドでできます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot の完成形</h3>
<p>下記すべてを合わせた完成形がソースコード全体がこちらです。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>毎日の自動ツイート</li>
<li>指定した「検索ワード」にヒットするユーザを自動フォロー</li>
<li>指定した「検索ワード」にヒットするツイートを自動リツイート</li>
<li>フォローしてくれた人を自動リフォロー</li>
<li>フォロバになれなかった人を自動リムーブ</li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p><pre class="crayon-plain-tag">import tweepy
import random

def main():

    consumer_key = 'XXXXXXXXXXXXXXXXXX'
    consumer_secret = 'XXXXXXXXXXXXXXXXXX'
    access_token_key = 'XXXXXXXXXXXXXXXXXX'
    access_token_secret = 'XXXXXXXXXXXXXXXXXX'

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token_key, access_token_secret)
    api = tweepy.API(auth)
    my_user_id = api.me().id_str

    msg = "ブログ"
    keyword = ["#Python"]

    # ツイート
    api.update_status(msg)

    # いいね
    do(api,"GOOD",keyword)

    # リツイート
    do(api,"RETWEET",keyword)

    # フォロー
    do(api,"FOLLOW",keyword)

    # リフォロー
    reFollow(api,my_user_id)

    # リムーブ
    removeFollow(api,my_user_id)


# タイムライン検索
def do(api,action,keyword,maxReq=3,maxTimeLine=10):

    for q in keyword:
        
        cnt = 0
        actCnt = random.randint(1,maxReq)            
        search_results = api.search(q=q, count=maxTimeLine)
        
        for result in search_results:

            tweet_id = result.id
            user_id  = result.user._json['id']

            try:
                if cnt &lt; actCnt:
                    if action == "GOOD" : api.create_favorite(tweet_id)
                    if action == "RETWEET" : api.retweet(tweet_id)
                    if action == "FOLLOW" : api.create_friendship(user_id)

                else:
                    break

                cnt = cnt + 1

            except Exception as e:
                print(e)


# フォロー返し
def reFollow(api,my_user_id,maxReq=3):

    cnt = 0

    #フォロワー数とフォロー数を格納するリストを用意
    follower_list = []
    friend_list = []
    
    #ユーザ情報からフォロワー数を取得、格納
    follower_list = api.followers_ids(my_user_id)

    #ユーザ情報からフォロー数を取得、格納
    friend_list = api.friends_ids(my_user_id)

    result_list = list(set(follower_list) - set(friend_list))

    for user_id in result_list:

        cnt = cnt + 1
        print(user_id)

        try:
            if cnt &lt; maxReq : api.create_friendship(user_id)
        except Exception as e:
            print(e)


# リムーブ
def removeFollow(api,my_user_id,maxReq=50):

    cnt = 0

    #フォロワー数とフォロー数を格納するリストを用意
    follower_list = []
    friend_list = []
    
    #ユーザ情報からフォロワー数を取得、格納
    follower_list = api.followers_ids(my_user_id)

    #ユーザ情報からフォロー数を取得、格納
    friend_list = api.friends_ids(my_user_id)

    result_list = list(set(friend_list) - set(follower_list))

    for user_id in result_list:
        cnt = cnt + 1
        try:
            if cnt &lt; maxReq : api.destroy_friendship(user_id)
        except Exception as e:
            print(e)


if __name__ == "__main__":
    main()</pre><p>
&nbsp;</p>
<p>上記のプログラミングを毎日繰り返し処理をすれば Twitter Bot として実行できます。</p>
<h2>作成した Twitter Bot を定期的に実行させる方法</h2>
<p>上記で作成した Twitter Bot プログラムを繰り返し毎日実行すればＯＫです。</p>
<p><span style="color: #000000;">ここでおそらく</span><strong><span style="color: #ff0000;"><span style="color: #000000;">このプログラムを</span>「どこで」「どうやって」<span style="color: #000000;">実行すればいいだろう？</span></span></strong><span style="color: #000000;">とそんな疑問</span>もわいてくると思います。</p>
<p>&nbsp;</p>
<p>そんな疑問に順番に解決していきます。</p>
<p>&nbsp;</p>
<h3>Twitter Bot を「どこで」実行すればいいのか？</h3>
<p>Twitter Bot を「どこで」実行し続けるか？</p>
<p>下記の二つが候補に挙げられます。</p>
<p>&nbsp;</p>
<div class="sc_frame_wrap blue">
<div class="sc_frame ">
<div class="sc_frame_text">
<div class="sc_designlist ol square solid blue">
<ol>
<li>Twitter Bot を自分のパソコンで実行する ← <strong><span style="color: #ff0000;">本当にやめておいたほうがいい</span></strong></li>
<li>Twitter Bot を VPS サーバーを借りて実行する ← <strong><span style="color: #3366ff;">1番おススメ</span></strong></li>
</ol>
</div>
</div>
</div>
</div>
<p>&nbsp;</p>
<p>先に結論からいいますが、一番おススメが「 <strong>VPS サーバーを借りる</strong>」です。</p>
<p>※ VPS とは普通のレンタルサーバー（エックスサーバーなど）とは異なり、OS からアプリまですべて管理するサーバです。</p>
<p>&nbsp;</p>
<h4>Twitter Bot を「自分のパソコンで実行する」</h4>
<p>まず Twitter Bot を「自分のパソコンで実行する」方法についてですが、メリット・デメリットそれぞれこんなのがあります。</p>
<p>&nbsp;</p>
<div class="sc_designlist li fa_check blue">
<ul>
<li><span style="color: #3366ff;"><strong>メリット</strong></span>・・・お金が全くかからない（パソコンの電気代くらい）</li>
<li><span style="color: #ff0000;"><strong>デメリット</strong></span>・・・ずっとパソコンを立ち上げないといけない</li>
</ul>
</div>
<p>&nbsp;</p>
<p>わたしは最初この方法で実装していましたが、<strong><span style="color: #ff0000;">自分のパソコンを24時間365日ずっと稼働させることが不可能</span></strong>ということに気づいてやめました。</p>
<p>&nbsp;</p>
<p>もちろん、お金をかけたくない人はこれでいいと思います。</p>
<p>しかし「自分のパソコンで実行する」方法では Twitter Bot プログラムを動作させることによってパソコンが重くなったり</p>
<p>パソコンを再起動させるたびにプログラムを実行しなおさないといけないというものすごくめんどくさいことが多々あります。</p>
<p>&nbsp;</p>
<p>私はそんなめんどくさいならば<span style="color: #000000;"><strong>お金をだしてでもサーバを借りて Bot を動かそう</strong></span>と思いました。</p>
<p>&nbsp;</p>
<h4>Twitter Bot を「レンタルした VPS サーバーで実行する」（一番おススメ！）</h4>
<p>まず Twitter Bot を「レンタルしたVPSサーバーで実行する」方法についてですが、メリット・デメリットそれぞれこんなのがあります。</p>
<div class="sc_designlist li fa_check blue">
<p>&nbsp;</p>
<ul>
<li><span style="color: #3366ff;"><strong>メリット</strong></span>・・・Twitter Bot が安定して稼働できる</li>
<li><span style="color: #ff0000;"><strong>デメリット</strong></span>・・・お金がかかる(月500円から多くて1000円) + ある程度知識が必要</li>
</ul>
</div>
<p>&nbsp;</p>
<p>結局一番これが良かったです。</p>
<p>自分のパソコンが処理で重くならないし、なにより <strong>Twitter Bot が安定して稼働する</strong>というのが本当によかったです。</p>
<p>ただお金が必要とありますが、安い VPS サーバーなら 500 円 ~ 600 円くらいです。</p>
<p>わたしのオススメは<a href="https://vps.sakura.ad.jp/">さくら VPS サーバ</a>です。これの一番安いやつで OK です。</p>
<p>&nbsp;</p>
<h3>Twitter Bot を「どうやって」実行すればいいのか？</h3>
<p>つぎにTwitter Bot を「どうやって」実行し続けるか？</p>
<p>これは Windows、Mac、Linux といった OS ごとにやり方が異なります。</p>
<p>&nbsp;</p>
<div class="sc_designlist li fa_check blue">
<ul>
<li><span style="color: #000000;">Windows</span>・・・Bot をタスクスケジューラで実行</li>
<li>Mac、Linux・・・　Bot を cron で実行</li>
</ul>
</div>
<p>&nbsp;</p>
<h4>Bot をタスクスケジューラで実行する（Windowsの場合）</h4>
<p>これは Windows のタスクスケジューラという機能をつかって実行します。</p>
<p>&nbsp;</p>
<p>※ タスクスケジューラとは文字通りタスクをスケジュールするツールですが、決まった時間に定期的にプログラム処理できる Windows の機能です。</p>
<p>その処理はタスクとして登録され、指定時刻にそのタスクが動作するイメージです。</p>
<p>つまり<span style="color: #3366ff;"><strong>そのタスクを Twitter Bot 用のプログラムにすれば定期的に実行できます</strong></span>。</p>
<p>&nbsp;</p>
<p>タスクスケジューラの登録方法についてですが、</p>
<p>まず Windows のスタートメニューで「タスクスケジューラ」と検索します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler.png" alt="" width="562" height="452" class="aligncenter wp-image-5992" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler.png 775w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler-300x241.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler-768x617.png 768w" sizes="auto, (max-width: 562px) 100vw, 562px" /></p>
<p>&nbsp;</p>
<p>下記のような画面が表示されるので、右欄の「基本タスクの作成」を選択して実行するプログラムを選択します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2.png" alt="" width="817" height="438" class="aligncenter wp-image-5993" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2.png 1313w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2-300x161.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2-1024x548.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler2-768x411.png 768w" sizes="auto, (max-width: 817px) 100vw, 817px" /></p>
<p>&nbsp;</p>
<p>基本タスクの作成画面で、まずはタスク名を指定します（なんでもＯＫ。）</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler3.png" alt="" width="550" height="392" class="aligncenter wp-image-5994" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler3.png 694w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler3-300x214.png 300w" sizes="auto, (max-width: 550px) 100vw, 550px" /></p>
<p>&nbsp;</p>
<p>次に好きなタスクトリガーを指定します。</p>
<p>これで好きなタイミングでタスクを実行できます。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler4.png" alt="" width="553" height="391" class="aligncenter wp-image-5995" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler4.png 692w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler4-300x212.png 300w" sizes="auto, (max-width: 553px) 100vw, 553px" /></p>
<p>&nbsp;</p>
<p>つぎにプログラムの開始を選択します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler5.png" alt="" width="527" height="372" class="aligncenter wp-image-5996" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler5.png 692w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler5-300x212.png 300w" sizes="auto, (max-width: 527px) 100vw, 527px" /></p>
<p>&nbsp;</p>
<p>ここで実行するプログラムをさきほど作成したPython 処理を実行する Bat を指定します。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler6.png" alt="" width="535" height="377" class="aligncenter wp-image-5997" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler6.png 695w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler6-300x212.png 300w" sizes="auto, (max-width: 535px) 100vw, 535px" /></p>
<p>&nbsp;</p>
<p>「<span style="color: #ff0000;"><strong>Twitter Bot は Python でつくったのに実行するのは Bat なの？？？</strong></span>」って思われるかもしれませんが、</p>
<p>タスクスケジューラーで実行するには Python の処理を Bat ファイル上で呼び出すしかありません。</p>
<p>※ 下記がバッチファイルの中身です。</p>
<p>こんな感じで python 「実行する Pythonファイル」でバッチファイル内で Python 処理を呼べます。</p><pre class="crayon-plain-tag">python twitterBot.py</pre><p>
&nbsp;</p>
<p>最後に完了ボタンを押して終了です。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler7.png" alt="" width="562" height="397" class="aligncenter wp-image-5998" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler7.png 694w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler7-300x212.png 300w" sizes="auto, (max-width: 562px) 100vw, 562px" /></p>
<p>&nbsp;</p>
<p>すると下記のように タスクが登録されていることが確認できます。</p>
<p>このタスクによって定期的に Twitter Bot 処理を実行できるようになります。</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" src="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8.png" alt="" width="806" height="327" class="aligncenter wp-image-5999" srcset="https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8.png 1180w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8-300x122.png 300w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8-1024x415.png 1024w, https://lemon818.com/wp/wp-content/uploads/2021/06/tasukuScheduler8-768x311.png 768w" sizes="auto, (max-width: 806px) 100vw, 806px" /></p>
<p>&nbsp;</p>
<h4>Bot をタスクスケジューラーで実行する（Mac、Linuxの場合）</h4>
<p>Mac、Linux で実行する場合は cron という機能を使って実行します。</p>
<p>ターミナルを開き、下記コマンドを実行します。</p><pre class="crayon-plain-tag">crontab -e</pre><p>
crontab -e で下記を書き込みます。</p><pre class="crayon-plain-tag">(分)(時)(日)(月)(曜日) 「実行するコマンドのパス]</pre><p>
&nbsp;</p>
<p><span>(分)(時)(日)(月)(曜日) はコマンドを実行する時刻を指定し、「実行するコマンドのパス」で Twitter Bot のコマンドを指定します。</span></p>
<p>例えば、</p>
<p><span>0 7 * * * python /Users/Test/twitterBot.py</span></p>
<p>とすると毎日 7:00 に <span>python /Users/Test/twitterBot.py を実行するっていうことです。</span></p>
<p>&nbsp;</p>
<p>そして「:wq」をキーボード入力して Enter で crontab -e が終了します。</p>
<p>これで定期的に実行できます（不安な人は crontab -l でコマンドが登録されていることを確認してみてください）。</p>
<p>&nbsp;</p>
<h2>Twitter Bot 自動でできました！！最後まで読んでくれてありがとうございます！！</h2>
<p>いかがでしたでしょうか？</p>
<p>この記事では、 <strong>Python  というプログラミング言語で ３か月500フォローまで育った Twitter Bot の作り方</strong>をご紹介しました。</p>
<p>&nbsp;</p>
<p>多分かなりめんどくさいと思われた人も多いと思います。</p>
<p>この記事を書いている私も一日で書ききれないくらいの量でした。</p>
<p>&nbsp;</p>
<p>この記事を読んでぜひいろいろな Twitter Bot を作ってみてください！</p>
<p>この記事がいいと思われたならぜひ SNS とかで共有いただければ嬉しいです。</p>
<p>ではでは。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
