【Twitter API】自動フォロー&フォロー募集形成方法

# まとめ
Twitter apiを使うと、毎日、2000人を自動でフォローできます。
また、フォローが返ってこない人を自動でフォロー取り消しできます。

フォローする人の条件設定として、以下の様なものを設定できます。:

* 特定のキーワードをプロフィールに含む人
* 最近、特定のキーワードを含むツイートをした人
* 誰かのフォロワー又は誰かがフォローしている人

## 自動で特定の人をフォローする方法
# 環境設定
今回使った環境:
* Mac OS 12.6
* Python 3.10
* tweepy 4.10.1
* jupyter lab 3.2.9(Pythonが書ければなんでもいいです笑)

私はAnacondaという、Pythonのバージョン管理が楽になるソフトを使ってます。
jupyter labの環境設定は以下のサイトが参考になるかと思います

https://ryjkmr.com/anaconda-jupyterlab-install/

# Twitter api設定
TwitterAPIを使うには、Twitterアカウントと、利用申請が必要です。
以下のサイトが参考になるかと思います。

https://toxublog.com/blog/twitter_api_apply/

ただ、TwitterAPIの利用申請はやる度に、やり方が変わっている印象があります。
2022年10月1日に申請したところ、TwitterAPIでダイレクトメッセージを送るAPIは追加の申請が必要になっていました!
2021年には追加申請なく使えていた思い出があります?

# フォローする
以下のコードで単純に一人をフォローできます！

``` .py
import tweepy 

#TwitterAPIの管理画面から取得します
APIKEY=
APIKEYSecret=
BearerToken=
AccessToken=
AccessTokenSecret=

client = tweepy.Client(
    bearer_token    = BearerToken,
    consumer_key = APIKEY,
    consumer_secret = APIKEYSecret,
    access_token = AccessToken,
    access_token_secret = AccessTokenSecret
)

#フォローしたい人の、useridを取得しますuseridは長い数列です。
user = client.get_user(username="FullStackSES")

#取得した人をフォローします。
client.follow_user(user.data.id)#
```

# もっと多くの人を同時にフォローしたい！
今回は対象者のフォロワー全員をフォローすることにします！
twitterapiは15分間に自動的にフォローできる人数が決まっています！(50人です)
50人以上をフォローしたい時の注意点も書いてあります！

``` .py

import tweepy 
import time

#TwitterAPIの管理画面から取得します
APIKEY=
APIKEYSecret=
BearerToken=
AccessToken=
AccessTokenSecret=

client = tweepy.Client(
    bearer_token    = BearerToken,
    consumer_key = APIKEY,
    consumer_secret = APIKEYSecret,
    access_token = AccessToken,
    access_token_secret = AccessTokenSecret
)

#対象者を指定します！
t_user = client.get_user(username="FullStackSES")

#対象者のフォロワーを取得します！
users=client.get_users_followers(t_user.data.id,max_results=1000)

#usersに対し、for文を回し、対象者のフォロワー全員をフォローします！
for user in users.data:
    try:
        client.follow_user(user.id)
    except tweepy.errors.TooManyRequests:#15分以内に50人以上をフォローするとエラー出ます
        print("15分待ちます!")
        time.sleep(15*60+20)#エラーが出た時に15分待つ処理です！

```

## いろんな方法でフォローしたい人を抽出しよう！
先ほどの例では、特定の人のフォロワーを全員フォローする方法を紹介しました！
その他の方法を2つ紹介します。

# 特定のキーワードを含む人をフォロー
このやり方をするには、TwitterAPIの利用申請後、Essensialではなく、 Elevatedというアクセス権限を再度申請する必要があります！

```
import tweepy
#同じようにアクセスキーを設定します
APIKEY=
APIKEYSecret=
BearerToken=
AccessToken=
AccessTokenSecret=

#今回は少し違う、認証方法をします！
auth = tweepy.OAuthHandler(APIKEY, APIKEYSecret)
auth.set_access_token(AccessToken, AccessTokenSecret)
api = tweepy.API(auth)

#今回はプロフィールに「エンジニア」と「1年目」を含む人を検索します！
#pageは上から数えて、何ページ目を取得するかです。countは取得するユーザー数です！
users=list(api.search_users("エンジニア 1年目",page=1,count=20))

#以下でまたフォローするコードを実行すれば、、、

```

## 終わり
^_^

# なんでこれやったの?
私の会社でSES事業を始めます。
エンジニア界隈、SES営業界隈はTwitterでの活動が盛んです。
採用でも、情報収集でも、多くの人と繋がるためには自動化した方が早いなと思い、twitterapiで実装しました！

現在はSES事業の事業部長候補として、SESエンジニアとして働いた経験のある方を募集しております。
案件先の選定やフォロー環境の構築に熱意を持って取り組みたいと考えています！
意見だけでもいいのでお聞きしたいです。興味のある方は是非、コメントかDMください！

https://en-gage.net/full-stack_saiyo/work_3491720/?via_recruit_page=1

# まとめ
Twitter apiを使うと、毎日、2000人を自動でフォローできます。
また、フォローが返ってこない人を自動でフォロー取り消しできます。

フォローする人の条件設定として、以下の様なものを設定できます。:

* 特定のキーワードをプロフィールに含む人
* 最近、特定のキーワードを含むツイートをした人
* 誰かのフォロワー又は誰かがフォローしている人