tweepyを使って検索したユーザーをフォローする
ブログを始めたのもあって、折角だったらフィードバック貰えたらなぁとか、PV増やせたらなぁとか、あわよくばアフィリエイトでお小遣いもらえたらなぁとか、邪な事を考えたので、ツイッターで拡散したいと考えた。
まずは、ユーザーをフォローして自分のツイッターを見てもらうのがスタートかな でも、さすがに手動でやるのはめんどくさい。。。 そもそもエンジニアブログ書いてるんだからエンジニアの人に見てもらわないとフィードバックなんか貰えないよなぁって事で
これを使う
api叩いてユーザー検索できるしフォローもできるっぽい! ということで早速
# package install pip3 install tweepy
apiを使用する時に認証を行わないといけないので、auth情報を下記から取得。
申請は英語でしなければならないのだが、拙い英語力のせいで何度も差し戻しにあって停滞した。。。
やっとこさAPI利用申請が通ったので、ソースを書いていく。
import sys import tweepy import configparser if __name__ == "__main__": # get stdin search_word = sys.argv[1] print(search_word) config = configparser.ConfigParser() config.read('config.ini') API_KEYS = config['api_key'] ACCESS_KEYS = config['access_key'] API_SETTING = config['api_setting'] auth = tweepy.OAuthHandler(API_KEYS['API_KEY'], API_KEYS['SECRET_API_KEY']) auth.set_access_token(ACCESS_KEYS['ACCESS_TOKEN'], ACCESS_KEYS['SECRET_ACCESS_TOKEN']) tweepy_api = tweepy.API(auth)
一応configにAPIの認証情報を置いておいた。
config.ini
[api_key] API_KEY = xxxxxxxxxxxx SECRET_API_KEY = xxxxxxxxxxxx [access_key] ACCESS_TOKEN = xxxxxxxxxxxx SECRET_ACCESS_TOKEN = xxxxxxxxxxxx [api_setting] # 大量に一括フォローを避けるために5件にしておく。 SEARCH_LIMIT = 5
検索ワードはベタ下きで毎回書き換えるのが面倒だったので、標準入力から取得するようにしておいた。
一旦実行してみる。
python3 run.py "python3" // python3
これで標準入力から入力を取得できることと、APIに接続する準備ができた。
APIに接続して、ユーザーを検索する。
results = tweepy_api.search(q=search_word, count=API_SETTING['SEARCH_LIMIT'])
キーワード引数で検索文字列と検索数を指定。
あとはこの結果を自動でフォローしていく。
for i, result in enumerate(results, start=1): # 総件数と処理中の件数を表示しておく print('processing...{} of {}'.format(len(results), i)) # 取得結果のjsonからユーザーIDを取得 user_id = result.user._json['screen_name'] print('user_id', user_id) # フォロー処理 tweepy_api.create_friendship(user_id)
一応ツイッターでフォローできている事を確認できた。
気になる分野とかでまとめてフォローしたい時に使ったら便利かも。 (そこまでツイッターやってないけど。。。)
ディレクトリ構成はこんな感じ。
app/ ├── config.ini └── run.py 0 directories, 2 files
例外とかは全く考慮してないので、まだまだ課題はあるけど一旦はこんな感じでやりたい事は満たせたのでよしとする。