ホーム > カテゴリ > PHP・Laravel・CakePHP >

Twitterで自動いいね、自動フォローの設計書 [手動 + 自動化 = 半自動化]

Twitterでは自動いいね、自動フォローは「自動化ルール」で禁止されています。自動フォローに関しては正確には「Twitterアカウントを大量または無差別にフォローしたり、フォロー解除したりしないでください。」との事です。

ですので、この記事では手動と自動化を組み合わせた「半自動化」の手法である「一括いいね」「一括フォロー」をご紹介します。

対象者

Twitter APIの経験者用としてますので、細かい説明は飛ばします。PHPコードも必要最低限で設計が主体とします。

目次

1. TwitterのAPI利用申請
2. TwitterOauthのダウンロード
3. TwitterOAuthのクラス生成
4. 自動いいね / 一括いいね
5. 自動フォロー / 一括フォロー
6. シャドーバンについて
7. 参考文献(API上限)

1. TwitterのAPI利用申請

https://developer.twitter.com/en/apps/

Twitterのアプリ(app)を作成して「API Key & Secret」及び「Access Token & Secret」を取得します。

2. TwitterOauthのダウンロード

https://github.com/abraham/twitteroauth

アプリ(app)で他のアカウントを操作する場合は以下を参考。

上記のコードは試していませんが、login.php、callback.phpの2つだけでいけるハズ。最初はlogin.phpにアクセスします。そうすると自動的にcallback.phpへ行きます。callback.phpでは$_SESSION['access_token']の中にある「oauth_token」「oauth_token_secret」を取得すればOKです。

※ある程度、コードを修正して下さい。

3. TwitterOAuthのクラス生成

$connect  = new TwitterOAuth(TWITTER_CONSUMERKEY,TWITTER_CONSUMERSECRET,
                             TWITTER_ACCESSTOKEN,TWITTER_ACCESSTOKENSECRET);

TWITTER_CONSUMERKEYAPI Key
TWITTER_CONSUMERSECRETAPI Key Secret
TWITTER_ACCESSTOKENAccess Token
(oauth_token)
TWITTER_ACCESSTOKENSECRETAccess Token Secret
(oauth_token_secret)

4. 自動いいね / 一括いいね

4-1. 自動いいね

// ツイートの検索
$statuses = $connect->get(
  'search/tweets', 
  array(
      'q'                 => 'プログラミング', // 検索キーワード
      'count'             => '5',              // ツイート件数
      'lang'              => 'ja',             // 言語
      'locale'            => 'ja',             // 地域
      'result_type'       => 'recent',         // ツイートの種類 recent(最新) popular(人気) mixed(全て)             
      'include_entities'  => 'false'           // entitiesプロパティを含めるかどうか
  )
);

// いいねの発動
foreach($statuses->statuses as $tweet){
  $result = $connect->post(
      'favorites/create', 
      array(
          'id' => $tweet->id
      )
  );
}

この例から見るようにTwitter APIを調査する際は「search/tweets」「favorites/create」などで検索します。

前述した通り、自動いいねは禁止されています。CRONやsleep(rand(3,8));などで時間をランダムに調整してもAPIを使用している時点でバレます。

4-2. 一括いいね

最新ツイートをキーワードなどで絞り込んで、それらをHTMLで表示して該当ツイートをクリックしたら、Twitter上でそれを表示して「いいね」を押せば問題ないと思われます。 ※要はTwitterでいいねを押せばOKと私は判断

いわゆる「一括いいね」となります。

作成するとしたらこんなイメージです。

リンクをクリックしたらTwitterを新しいウインドウで開き、HTML(自前)のチェックボタンをオンにすると便利です。ただ、普通にTwitterで検索して「いいね」を押せば良いだけかも知れません(笑)

この記事のメインは次の「一括フォロー」です。

5. 自動フォロー / 一括フォロー

5-1. 自動フォロー

自動フォローも基本的に禁止されています。

5-2. 一括フォロー

好みのジャンルのユーザーを絞り込んで、一括でフォローをする事が可能となります。また、プロフィールも表示されますので、目視で選別可能です。

次の手順で行います。

1. 指定ユーザーがフォローしているユーザーIDの一覧を取得する

$target_id = "xxx"; // @以降のID

// 指定ユーザーのIDを取得する
$target = $connect->get( 'users/show',array("screen_name" => $target_id));
$id = $target->id;

// 指定ユーザーがフォローしているユーザーIDを配列で取得する
$friends = $connect->get( 'friends/ids',array("user_id" => $id ));
$friends_ids = $friends->ids;

var_dump($friends_ids);

2. 1の$target_idを変更後、繰り返して数万件取得する

3. 必要なユーザーIDのみを残す

自分がフォローしているユーザーIDは除外する
対象が72時間以内にツイートをしていない場合は除外する
対象がフォロー率50%未満の場合は除外する
対象のプロフィールに指定キーワードが含まれない場合は除外する

ココの処理はCRONが良いです。ユーザー情報の取得(users/show)は15分で180件までなので20分毎にCRONを推奨。

4. 選別されたユーザーIDの一覧を30件毎に表示する

4-2と同様で、作成するとしたらこんなイメージです。

チェックボックスのオンは既にクリックしたか判断する為です。

6. シャドーバンについて

フォローをやり過ぎるとアカウントがシャドーバンになる可能性があります。

シャドーバンは次のURLで確認できます。
https://shadowban.eu/

シャドーバンになると、あなたのツイートやアカウントがフォローされていない一般のアカウントで検索、表示されなくなります。

OKな例

シャドーバンは、先頭行以外がまたはオレンジになります。

シャドーバンの次の段階になるとTwitter上で「このアカウントは一時的に制限されています」などと表示されます。※1日400人以上をフォローするとなると思われます。

※一括フォローをする場合はシャドーバンを毎日確認した方が良いです。

7. 参考文献(API上限)

Twitter API 1.1 / 実行回数制限 (外部サイト)





関連記事



公開日:2020年09月25日 最終更新日:2020年09月27日
記事NO:02840