見出し画像

pythonを使ったtwitter自動化-twitter懸賞自動応募で0→1突破実績あり・スクレイピング対応済み-

python_man

=====================2023/5/7追加======================
TwitterAPIの利用が制限されてしまい、使えない方も多いかと思います。そこで、twitterをスクレイピングする方法を追記しています。Googleで検索しても2023年の最新情報は出てこないので、ここだけの情報です。

スクレイピングをしたい人は、一番最後の「Twitterをスクレイピングする方法」だけお読みください。

現段階では、いいねとリツイート、フォロー、トレンドのスクレイピングを行うことができます。
情報は随時追加していくので、そのタイミングで値上げもしますが、一度購入されている方は、追加料金かかりません。

そのため、現在が最安値です。

=====================================================

「twitterの懸賞に毎日時間を取られてしまう」

twitter懸賞に参加するにも該当ツイートを探して、フォローとリツイートをして、懸賞条件を満たすために他のアカウントもフォローして…

単純作業ですけど、意外と時間が取られてしまいますよね?

ならば、この単純作業を自動化してしまえば、時間も浮いて、一種の不労所得になります。

このnoteではtwitter懸賞に時間を取られているあなたに向けて、自動応募する方法をお伝えしていきます。

前半部分ではtwitterを自動操作する方法、後半部分ではtwitter懸賞を自動化する方法の解説となっています。

twitter懸賞の自動応募は放置しておくだけで収益を得られるので、ブログやnote執筆などの副業をせずとも、0→1突破をすることができます


1ヶ月続ければ、当選額でペイできるはずなので、ぜひ利用してみてください。

また、複数アカウントでも利用できるように解説しているので、twitterアカウントを複数運用すれば、さらに当選確率は上がります。

以下は実際に当選したpaypay受け取りの画像です
これは一部で他にもamazonギフト券なども当選しました

当選の一部
当選の一部
当選の一部

twitter自動操作と懸賞自動化の準備


twitterを使っている人なら、「いいね」「フォロー」などの自動化を考えたことがあるのではないでしょうか?

Tweetdeckを使用すれば、予約投稿はできますが、自動いいねや自動フォローは難しいですよね

ですが、今回紹介するコードをコピペしてもらえれば、自動で「いいね」「フォロー」などをすることができます

さらにherokuを使用して、スケジュール設定を行うことで、パソコンを立ち上げていない状態でも、予約時刻になると自動でプログラムが起動するようになります

今回紹介するコードを使って、twitterを運用した結果、以下のようになりました。

スクリーンショット 2022-02-03 22.32.45
スクリーンショット 2022-02-03 22.34.18

1つ目のアカウントは一日に3ツイートくらい、
2つ目のアカウントはほぼツイートしていませんが、上記のような伸び方をしています

うまく使えば、これ以上の伸びも可能だと思います。

SNS運用を成功させたい場合には、ある程度の自動化は必須になります。
あくまでもSNSは手段であるため、以下に効率よく収益化を図るかが重要になります。

いつまでも単純作業に時間を溶かしていると、本来稼げるはずだった収益を取りこぼすことになります。

ぜひ、このコードを使って収益化upを狙ってみてください。

今回はtwitterの自動化コードとそのために必要なAPI取得、設定が難解なherokuの設定をどこよりも詳しく解説していきます

twitterの自動化コードは一番最後に記載しています

必要なのはパソコンとpythonの環境だけです

これからpythonを学び始める方は、以下の記事からpythonの環境構築を行ってください

また利用に関しては、twitterの規約に則って使用してください

pythonを使える環境にいないけど、
pythonのプログラムを動かしたい場合


pythonの開発環境がないけど、pythonのプログラムを実行したい場合には、google colaboratoryを使用すれば、面倒な初期設定などはせずにpythonのプログラムを実行することができます!

詳しくは以下の記事を参考にしてください!


2022/10/9更新

Twitter API v2に対応したコードを追記しました

これまではtwitter APIのバージョンが1.1だったので、問題なく稼働させることができていました

しかし、ある日からv2になっており、稼働しない方も出てきたので、twitter API v2に対応したtwitter自動化のコードを追記しました。

これまでとは異なり、「bearer_token」が必要になるのですが、取得方法はこちらのnoteに書いてある方法で問題ありません。

v1.1とは違ってユーザーIDが取得しにくくなっていました
なので、正規表現でユーザー名を取得し、適切な文字列に整形後、ユーザーIDを取得する、というめちゃくちゃ遠回りの方法をとっています。

もしかしたら簡単にユーザーIDを取得できるのかもしれませんが、僕が調べた限りではなさそうです。


Twitter APIを取得する

まずはtwitternAPIを取得します
以下のサイトに飛び、twitter API申請を行います。

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

なお、2アカウント目以降の場合には、以下のサイトに飛びます

https://tools.tsukumijima.net/twittertoken-viewer/

twitter APIの登録方法は、年々変化しているようで、私が最初に登録したときは、一番最初に利用目的などを入力する必要がありました。

今回、再度登録してみたところ、そういった類のものは無くなっており、Apply for Elevatedを行う必要があるみたいです

基本的には以下を内容を参考にしてもらえれば、登録できるはずです。

ページにアクセスし、「Create an app」ボタンをクリックします。

スクリーンショット 2022-01-19 17.46.24

Apply」をクリック

スクリーンショット 2022-01-19 17.46.40

必要事項を入力。4項目目は「No」にしておき、チェックボックスも空欄にしておきましょう。(チェック入れるとメルマガがきます)
3項目目はなんでもいいですが、今回は「Making a Bot」にしています。

スクリーンショット 2022-01-19 17.50.31

Next」をクリックで次に進み、「submit」します。
ここはtwitterアカウントに電話番号を登録していないと、submitすることができません。
まだ登録していない方は、登録しておきましょう。

スクリーンショット 2022-01-19 17.51.21

submit」すると以下の画面になります

スクリーンショット 2022-01-20 21.48.01

twitterアカウントに登録しているアドレスにメールが届くので、そちらを確認しましょう
Confirm your email」をクリックすると、developerのページに飛びます

スクリーンショット 2022-01-20 21.49.03

メールをクリックすると以下のサイトに飛びます。
ここでAPIキーなどはコピペして保存して、「skip to dashborad」をクリックします

スクリーンショット 2022-01-20 21.51.18

コピペが完了したら、ダッシュボードに遷移します

スクリーンショット 2022-01-20 21.54.28

これでtwitterAPIの登録は完了です

twitter自動化プログラムの登録

ここからはtwitter自動化のプログラムを登録していきます

以下のサイトを利用します

1.ダッシュボードから「Projects & Apps」をクリック

スライド1

2.「Project1」の下にある「〇〇〇〇」をクリック

スライド2

3.「set up」をクリック

スライド3

4.「OAuth 1.0a」を選択

スライド5

6.「Read and write」を選択し、「Callback URL」「Website URL」に以下のサイトのURLを入力

https://tools.tsukumijima.net/twittertoken-viewer/

スライド6

7.「save」をクリック

スライド7

8.webサイトで登録を行う
「コンシューマーキー(API key)」「コンシューマーシークレット(API secret key)」を入力し、「認証」をクリック

スライド8

9.twitterで認証する

スライド9

これでpythonで作成したプログラムを使用することができるようになります。

Apply for Elevatedを行う

続いてApply for Elevatedを行っていきます

こちらを行うことで、favやRT、フォローなどを行うことができます

いくつか質問されるので、そちらに答えていきます

1.In your words

「We use the Twitter API to create a bot program that posts automatically. Use the API to automatically post tweets about recommended products that are listed in the popularity ranking using Google Apps Script.」

2.Are you planning to analyze Twitter data?

ここはtwitterのデータを解析に使うかどうかです。
Botの作成であれば使用しないため、「No」にしておきます

3.Will your app use Tweet, Retweet, Like, Follow, or Direct Message functionality?

アプリでツイート・RT・fav・フォロー・DMを使用するかどうか
ここは使用するため「Yes」にして、以下のように書いておきます

「We plan to create a Bot function that automatically tweets the articles created on the blog.
We will also create a function to automatically follow people who like or retweet the bot's tweets.
I also want to create a feature that automatically sends a thank you direct message to users who follow my account.」

4.Do you plan to display Tweets or aggregate data about Twitter content outside Twitter?

Twitterのコンテンツに関するツイートや集計データをTwitterの外部で表示する予定はありますか?
ここはBotでは使用しないので「No」にします

5.Will your product, service, or analysis make Twitter content or derived information available to a government entity?

貴社の製品、サービス、分析によって、Twitterのコンテンツや派生する情報を政府機関が利用できるようになりますか?

ただのBotなので「No」にします

あとは「Next」をクリックして、「Submit」すれば完了です

その後、pendingされるので、認証のメールを待ちましょう

認証メールを待っている間に以下のようなメールが来た場合には、より詳しく説明をする必要があります

スライド18

それぞれの返信は以下のようにしました

Q1.The core use case, intent, or business purpose for your use of the Twitter APIs.
A.We use the Twitter API to create a bot program that posts automatically.

Q2.If you intend to analyze Tweets, Twitter users, or their content, share details about the analyses you plan to conduct, and the methods or techniques.
A.We do not plan to use Twitter APIs to retrieve some content from Twitter and display it on sites other than Twitter. I use Twitter APIs solely to tweet the information of me and my service.

Q3.If your use involves Tweeting, Retweeting, or liking content, share how you’ll interact with Twitter accounts, or their content.
A.I use this Twitter account to interact with users by logging into this account directly from Twitter on the web or mobile app instead of using Twitter APIs and tweeting like normal users or tweeting It will be realized by doing.
The content of that tweet will be mainly to answer the question of the user of my service by reply or to tweet the update information of the service.

Q4.If you’ll display Twitter content off of Twitter, explain how, and where, Tweets and Twitter content will be displayed with your product or service, including whether Tweets and Twitter content will be displayed at row level, or aggregated.
A.If there is Twitter content in my service, it will be about putting a Twitter share button. You will place the buttons on a part of the menu of my service or in the corner on the screen. However, it is not done using Twitter APIs.

Thanks.

そしたら、今度は日本語で送られてきたので、日本語で送り返します

スライド19

Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。
ここでいう「ビジネス上の目的」には営利事業に必ずしも関係しない用途も含まれますのでご注意ください。Twitterコンテンツを使用して対応しようとしている問題、ユーザーストーリー、または全体的な目標についての情報が必要です。

→pythonを利用して、自動投稿を行う予定です。自動投稿を行う内容は、当方が作成しているwebサイト(https://python-man.club)を中心にツイートをしていきます。

学生、コーディング学習者、またはTwitter APIの初心者であるお客様は、実施予定のプロジェクトまたは重点分野の詳細をご提供ください。

→実施予定のプロジェクトは、自動投稿をメインに行います。

ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお知らせください。
ここでいう「分析」にはTwitterコンテンツに対して行われるあらゆる形式の処理が含まれますのでご注意ください。使用目的については可能な限り詳細かつ完全な説明をお願いいたします。
ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお知らせください。

→Twitter APIsを利用してTwitterから何らかのコンテンツを取得し、それをTwitter以外の場所で表示する予定はありません。私がTwitter APIsを利用するのは、もっぱら、私と私のサービスが持つ情報をツイートをするためです。

TwitterコンテンツをTwitter以外で表示する場合は、お客様の製品またはサービスのユーザーに対して、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明ください。

→私のwebサイトにTwitterのコンテンツがあるとすれば、Twitterのシェアボタンを置くぐらいでしょう。私のwebサイトのメニューの一部、もしくは画面上の隅の方にボタンを配置するでしょう。しかし、それはTwitter APIsを用いておこなうのではありません。

上記を送った数時間後に承認のメールが届き、ダッシュボードも若干の変化がありました。

スクリーンショット 2022-01-23 9.21.56
スライド20

これでbotでの投稿やfav・RTが可能になりました

herokuの登録

次にherokuの登録を進めていきます
herokuの登録自体はそんなに難しくないので、以下のサイトを参考に進めればOKです

git hubの登録

herokuの登録が終わったら、git hubにも登録をしておきます
git hubも簡単に行えるので、以下のサイトを確認してください

heroku CLIをインストールする

スケジューラーを使用するのに、heroku CLIというものをインストールする必要があります
heroku CLIはこちらを参考に進めましょう

git hub desktopをインストールしておく

GitHub desktopをインストールしておくと、作業が楽になります

herokuにプログラムをデプロイする

ここからは実際にherokuにプログラムをデプロイして、定期実行する流れになります
ここが1番悩ましいところですが、画像付きで解説していきますので、頑張ってデプロイしていきましょう

herokuを利用する場合には、homebrewをインストールしておくと楽なので、homebrewを入れておくことをオススメします

https://brew.sh/index_ja

gitとherokuのバージョンを確認しておく

git --version

heroku -v

まずは定期実行したいコードをデスクトップに保存しておきます

今回は私は「pythonauto」というフォルダを作成し、そこにコードを保存しています

また、定期実行を行う際には、「requirements.txt」「runtime.txt」が必要になるので、「pythonauto」というフォルダ内に保存をしておきます

requirements.txt」:ローカルにインストールしてあるpythonのライブラリを書いておく
例)tweepy

runtime.txt」:herokuでインストールするpythonのバージョンを記載しておく
例)python-3.9.9

スライド23

画像のようにフォルダの中に3つのファイルが入っている状態にします

ターミナルを起動し、herokuにログインします

heroku login

ログインすると、何かキーを押してくださいと表示されるので、何かキーを推します

heroku: Press any key to open up the browser to login or q to exit

キーを押すと、ブラウザでherokuにログインするように求められるので、ログインします

ログインに成功したらターミナルに戻ります

herokuに新規アプリを作る

ログインができたら、ターミナルに戻り、最初に作成したデスクトップ上のフォルダに移動します

cd XXXXXXXXXX(フォルダのパス名)

その後、herokuに新規アプリを作ります

heroku create xxxxx(好きなapp名)

スライド38

app名が他の人が使用していると、使えず上記のように「Name pythonauto is already taken」と表示されます

そういう場合には、

heroku create

だけ入力すれば、勝手にapp名が作られます

スライド39

appの作成がうまくいくと、上記のようになります

git hubにコードを保存する

appの作成までうまくいったら、git hubにコードを保存していきます

githubにログイン後、右上「+」から「New repository」をクリックし、新たなレポジトリを作成していきます

レポジトリの名前を求められるので、好きな名前を入力し、「Private」にチェックを入れ、「Create repository」をクリックします

スライド21

その後、以下の画面になるので、「uploading ~~~」をクリックし、デスクトップ上のフォルダに保存している3つのファイルをドラッグで追加します

スライド22
スライド26

ドラッグ後、真ん中あたりにドラッグしたファイルが表示されていればOKです

左下、緑のボタンをクリックします

そうすると以下のようにファイルが追加されます

スライド27

git hubへの登録はこれでOKです

herokuとgithubを連携する

ここまで来たらあと少しでおしまいです

herokuとgithubを連携させていきます

herokuのwebサイトに移り、先ほど作成したapp名をクリックします

スライド28

その後「deploy」をクリックし、githubとの連携を行います

スライド29

githubをクリックすると「search」が出てくるので、クリック

スライド30

その後、下にレポジトリがいくつも出てくるので、先ほど作成したレポジトリをクリックします

スライド31

connectが成功したら、「deploy」タブがあったとこの一番右側「setting」に移ります

settingの「Add building」からpythonを選択していきます

スライド32
スライド33
スライド34

Addが完了したら、「deploy」タブに戻り、githubが「connected」になっているのを確認しましょう

スライド36

「connected」になっていたら、下までスクロールして「deploy Branch」をクリックします

スライド41
スライド42

デプロイに成功すると以下のようになります

スライド43

これでherokuとgithubの連携は終了です

ターミナルに戻って、herokuにデプロイしていきます

herokuにアプリをデプロイ

ターミナルに戻り、

$ git init
$ git remote add heroku XXXXXXXXXXXXXX
$ git add . 
$ git commit -m "aap commit"
$ git push heroku master

順番に入力していきます

「XXXXXXXXXXXXX」の部分はherokuのsettingタブのheroku git URLに書いてあります

またさ、最後の「git push heroku master」で「master」でうまくいかない場合には「main」に変更して、登録を行います

最後までうまくいくと、以下のようになります

スライド44

これでherokuにデプロイできました

最後にスケジューラーの設定です

追記:herokuから直接プッシュする方法

herokuを使っている方は、こんなメールが来たのではないでしょうか

パスワードのリセットしたからよろしくねー
って感じです。

これはOAuthトークンと呼ばれるものが流出したが故に見たいです

そのおかげでgithubとherokuの連携ができなくなっています。
なので、herokuから直接プッシュする必要があります。

herokuにログイン→アプリ名クリック→Deploy
を選びます。

その後、Heroku Gitを選択し、ターミナル上でheroku CLIにログインします。
heroku CLIは記事の中盤くらいで解説しているので、戻って確認してください。

ログイン後、以下のコードをターミナル上で入力します。

$ heroku git:clone -a アプリ名
$ cd アプリ名

これでOKです。

herokuスケジューラーの設定

Heroku Schedulerを使う場合は無料枠の範囲でもherokuにクレジットカードを事前に登録しておかなければいけません。
(プランを変えない限り勝手に課金されることはありません。)

herokuのAccount settingからbillingタブに移り、カード情報を登録していきます

画像40

カードの登録が終わったら、スケジューラーを追加していきます

ターミナルに移り、

heroku addons:add scheduler:standard

と入力します

するとアドオンの追加ができます

その後、

heroku addons:open scheduler

と入力を行い、詳細設定を行っていきます

ブラウザが立ち上がったら、「Create job」をクリックします

画像41
スクリーンショット 2022-01-23 11.17.16

時間は毎時〇〇分など色々決められますので、好きな時間を選びましょう

また、「$」には、起動するpythonファイルを記入します

必ず「.py」ファイルを選び「python 〇〇.py」と記入します

〇〇はデスクトップ上に保存しているコードの名前です

また、時刻がUTCになっているため、表示されている時間+9時間が日本時間になりますので、気をつけてください

起動したい時間を設定したら、「Save job」をクリックして終了です

詳細はこちらの記事が参考になります

実際にTwitter APIを使って、テストしてみる

Twitter APIの取得ができたら、実際にPythonを使ってテストしてみましょう
ここでテストするのは、Pythonからツイートする方法です

ツイートしたい内容をリストとして入力しておき、その中から一つだけランダムで
選び、該当アカウントでツイートする、というコードです

これを動かすことができれば、twitter懸賞の自動応募も可能です

import random
import tweepy

#****には自身のコードを入力してください
CONSUMER_KEY = '****'
CONSUMER_SECRET = '****'
ACCESS_TOKEN = '****'
ACCESS_SECRET = '****'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth)

#****にツイートしたい内容を入力していきます.「,」で区切ることで、複数登録できます
tweetlist=["****"]
#リストに含まれるツイート内容をランダムでツイート
api.update_status(random.choice(tweetlist))

ここまで読みながら実践したけど、うまくできなかった方へのサービス

せっかくここまでtryしたのに、できないのは悔しいですよね

なので、こちらからご連絡をいただいた方には、代行で設定を行います!
設定を代行するには、twitterアカウント名とパスワードが必要になりますので、そちらのご理解をいただける方のみ、お願いします

当方が悪意を持って、利用することはありません

↓連絡先↓

https://lin.ee/Wh41gb3

twitter運用自動化コード

最後にtwitter運用自動化コードを書いておきます

APIキー、APIシークレットなどを書き換えてもらえれば、すぐに使うことができます

この続きをみるには

この続き: 4,701文字

これまでに有料noteで販売していたpythonの自動化コードをまとめています。単体で購入するよりも約半額程度になっていますので、pyth…

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!