
APIを用いたTwitterアカウントのリツイートといいね作業の自動化
Note記事の転用です。Brainにどれだけドメインパワーがあるのか分かりませんが、一応やってみました。
こんにちは。りゅ(@RonCreate)です。
このBrainで紹介するのは、ツイッターでリツートといいね!を自動化する方法です。
スクリプトも配りますので、ちょちょっと初期設定していただければ使えるようになります。
複数のアカウントを特定のキーワード(これも複数設定可)でTwitter検索して、リツイートといいね!をします。
これにはプログラミング言語(Python)とTwitterAPIを用いて、自動化します。
と難しそうなイメージがありますが、できる限り専門用語を使わずに書いていきます。と当時は書いていましたが、Pythonの導入や実行方法で躓く人がいるかなっと思うと、ちゃんと書いていくのが面倒になったのである程度わかる人におすすめします。このNoteは全文公開してますので、最後に納得していただければスクリプトを買うイメージでお願いします。初心者の方でも一度読んでいただいて、わかりそうであれば、トライしてみてください。
また自動いいね、リツイートbotが増えすぎると嫌なので、とりあえず限定5部でやってみます。
メリット
・作業時間がなくなる。
特定のキーワードであればリツイートといいね!をする作業がゼロになります。
・APIを用いているのでPythonが分かれば独自に改変が簡単にできる。
以前僕はブラウザの自動操作でツイッターの自動運用をやってましたが、最近TwitterのUIが変わったことによって再度プログラムを書き直す羽目になりました。書き直すことは問題ないのですが、実はこの方法では頻繁に自動ログイン等を繰り返したせいでアカウントロックを食らうことも何度かありました。
したがって、今回紹介するAPIというものを用いて運用した方が安全です。しかも、こっちの方がより簡単に短時間でプログラムを書けます。
・複数アカウントで運用可能
1つのアカウントでAPI申請し、通れば複数のアカウントで使用可能になります。(他のアカウントでのアクセストークンの取得プログラムも付属しています。)
このプログラムの実績
うーん、まぁアカウントの宣伝や告知に貢献してるんじゃないかなと思います。
このプログラムの工夫
業者のリンクだったり、botツイートをリツイートやいいね!すると、そういうアカウントの手伝いをしてるみたいで嫌なので、
・Twitter for iPhone
・Twitter for Android
の2つのクライアントからのツイートだけいいね!&リツイートをするようにしました。
(プログラミング言語が分かれば、他のクライアントも追加可能)
より精度高くリアルユーザーのツイートを狙えるんじゃないかと思います。
また有害リンクを応援するのも良くないので、.comや.net、.jpや.peingを含むツイートもリツイートといいね!をしません。
このNoteの価格の妥当性
ココナラでPythonでの自動化やツール作成を依頼すると15000円程度は取られるようですし、これくらいの価格でもいいんじゃないかなと思いました。笑
寝てても他の仕事やってても作業してくれるので、時間が買えるかと思います。
注意事項
・フォローワー増加、関連する収益増加を保証するものではありません。
あくまで作業の効率化です。
・Pythonがわかる人は参考にならないかも。
・API制限(リミット)を破った場合、アカウントがブラックリストの登録またはBANを受ける可能性があります。
プログラムの動作
プログラムは最終的に以下のような動作をするものです。
1.自分で決めた任意のキーワードワードを検索する。
2.最新の上位10ツイートを取得する。
3.上記クライアントであればリツイートといいね!を実行する。
すでにリツイート、もしくはいいね!していたらエラーとして出力する(プログラムは停止しません)。
4.1時間後次のアカウントを読み込み、次のキーワードで検索する。
以下2.からと同様の動作を繰り返す。
です。APIリミットを破らないように、10ツイートのみの取得、さらにやりすぎると他のユーザーにも迷惑になるので、1時間1回だけ動作するようになっています。
API申請
まずAPIの使用許可をTwitterに貰わなければ何も始まりません。
自動運用したいアカウントで申請してください。(審査が通るまでには1日はかかると思います)
詳しくは下のウェブサイトをご覧ください。
電話番号を登録したアカウントでなければ、申請できないとか、できるとからしいので注意してください。
またAPIの申請時に申請理由を英語で書く必要があるのですが、Google翻訳で翻訳しても大丈夫です。最近のは結構精度高いです。
申請理由は僕の場合「ブログの記事を自動で呟いて、定期的にリツイートをしたい」と書きました。(未だにその機能は実装できてませんが)
それと最近はどんな理由であろうと一度はTwitterの方から理由の再確認的なメールが届きます。その文章が英語なら英語で、日本語なら日本語で返信した方がいいと思います。
その例を日本語の場合、英語の場合の2つ挙げておきます。
日本語の場合の僕が返信した内容。
返信ありがとうございます。
以下の形式で一つ一つお答えします。
• Twitter APIを使用する中核的な使用目的、意図、ビジネス上の目的。
• 学生、コーディング学習者、またはTwitter APIの初心者であるお客様は、実施予定のプロジェクトまたは重点分野の詳細をご提供ください。
いままでAPを利用してPythonでのプログラムを書いたことがなかったのでライティング能力向上も一つの目的です。
また、頻出するツイートの単語と回数で散布図を作り相関性も調べいたいと思います。
ビジネス目的(営利目的)では使用しません。
• ツイート、Twitterアカウント、またはそのコンテンツを分析する場合は、実施する分析の内容と手法または技術について詳しくお知らせください。
• ここでいう「分析」にはTwitterコンテンツに対して行われるあらゆる形式の処理が含まれますのでご注意ください。使用目的については可能な限り詳細かつ完全な説明をお願いいたします。
また、分析には形態素解析を用います。
Janomeが有名ですので、Janome(https://mocobeta.github.io/janome/)を使って文章を単語ごとに分けます。
そのあと、出現した単語をリストにappendしてfor文を用いて頻出度を調べます。
• ツイート、リツイート、いいねの使用が含まれる場合は、Twitterアカウントまたはそのコンテンツに対してどのような操作を行うのかをお知らせください。
APIを用いて、いいねが1万以上のツイートを取得します。
また前述した方法で、分析したあと実際に分析結果に基づいて文章を作成し、ツイートします。これはAPIを使って投稿するつもりです。
• TwitterコンテンツをTwitter以外で表示する場合は、お客様の製品またはサービスのユーザーに対して、ツイートおよびTwitterコンテンツがどこにどのように表示されるかを、行レベルの表示か集計表示かを含めてご説明ください。
ツイッターコンテンツは他のサービスで公開しません。
1万以上のいいねがされているツイートを取得しますが、そのツイートコンテンツは自分のPC内だけで利用します。
外部に公開したり、他人に渡したりはしません。
英語の場合の僕が返信した内容。
Hello,
Thank you for your reply.
I want to answer your questions carefully.
I want to tweet my blog post automatically. Therefore, use Twitter API.
The method will be created using the Python language. Specifically, I plan to check my blog every day at 12:00 and create a program to tweet automatically if there is a new article. If there is no new article, I will not tweet.
I will also retweet my tweets once a day at 20:00. I would like to do this automatically using the API.
The analysis of Tweet content is not currently considered. Therefore, it is not disclosed to the outside.
Thanks.
Pythonの準備
ここからが本題です。
Pythonって?
Python(パイソン)はプログラミング言語の1種です。近年人工知能の研究でよく用いられている流行りの言語です。他のプログラミング言語に比べて学習コストが低く、プログラミングの入門にも適した言語だと思います。
Pythonのインストール
Pythonのインストール方法は下のウェブサイトに書きましたので、そちらをご覧ください。AnacondaというソフトをインストールすればPythonは使えるようになります。
MacOSでも同様の方法です。
Pythonの始め方とAnacondaのインストール方法【Windows版】
テキストエディタの準備
UTF-8という文字コードで保存できるものであれば、どんなテキストエディタでもいいですが、ここではAtomを紹介します。
無料のソフトです。
【Python】テキストエディター「Atom」のインストール方法
APIコンスマーキーの取得
API申請が通ったら、コンスマーキーとコンスマーシークレットキーを取得します。まず下記サイトにアクセスしてからログインしてください。API申請が通ったアカウントでログインしてくださいね!
Twitter Developer Platformdeveloper.twitter.com
あとでアクセストークンの取得もするので「コールバックURL」は必ず設定してください(自分のツイッターのURLでもなんでもいいです)。
詳しくは下のサイトの4.からみて下さい。
スクリプトのインストール(設置方法)
スクリプトはこのNoteの最後のところにありますのでダウンロードしてください(有料)。そしてそれらのファイルは全て同じディレクトリに保存してください。
複数アカウントでのアクセストークンの取得
次にダウンロードしていただいたファイルの「GetAccessToken.py」をAtomで開いてください。このファイルの19行目にコンスマーキーとコンスマーシークレットキーを貼り付けて保存します。
キーを貼り付ける時はシングルクウォーテッションの中に貼り付けるように気をつけてくださいね!
次にこの「GetAccessToken.py」を実行します。
すると自動的にブラウザが立ち上がりますので、「連携アプリを認証」をクリックしてください。
するとコールバックURLのウェブサイトに戻るかと思います。
ここでこのサイトのURL部分に注目してください。
設定したURLよりも凄く長くなっていると思います(パラメータが付いています)。
このURLの末尾の「oauth_verifier=」以降をコピーしてください。
このコピーしたコードを先ほどの実行ファイル(コンソール)に貼り付けます。
貼り付けたらエンターキーを押します。するとアクセストークンとシークレットアクセストークンを自動で取得します。
アクセストークン取得成功と出たらOKです。同じディレクトリにもcsvファイルが生成されていると思います。
同様に他のアカウントのアクセストークンを取得していきましょう。まずツイッターにアクセスして先ほどのアカウントはログアウトしてください。
下記サイトからツイッターにいけます。
Login on TwitterWelcome back to Twitter. Sign in now to check your notificatitwitter.com
ログアウトしたら先ほどの「GetAccessToken.py」を実行の工程からやります。
1.「GetAccessToken.py」の実行。
2.自動的にウェブが立ち上がるのでログイン。
3.「連携アプリを認証」をクリック。
4.「oauth_verifier=」をコピーしてコンソールに貼り付け。
です。これを運用したアカウントでやっていきます。
自動リツイートといいね!の実行
ようやく準備が整いました。次は「products.py」をAtomで開いてください。
14行目と15行目に先ほどと同様のコンスマーキーとコンスマーシークレットキーを貼り付けます(※アクセストークンではありません、コンスマーキーです)。
次に9行目に検索ワードを入力します。下の画像を見てください。
シングルクウォーテッションでキーワードを囲います。他にワードを足したければ、コンマを付けてさらにシングルクウォーテッションの中にキーワードを入力します。
最後に「products.py」を実行します。
運用方法
自前PCで「products.py」ファイルを実行して放っておくだけです。Rasberrypiや余ったPCがあれば尚良いと思います。
HEROKUで運用
もできるみたいです。興味ある方は調べてください。
質問はTwitter(https://twitter.com/RonCreate)のDMでお願いします。
ここから下が有料です。有料部分には実際のスクリプトを載せています。
上で書いたことに納得していただいてから購入してください。