pythonからリツイートしてみよう

python
2

Twitter APIを用いて、pythonからリツイートしてみましょう!

Twitterで効率的に宣伝を行うためには、自分の記事紹介ツイートのリツイートが欠かせませんよね。

これを自動化するための第一歩として、pythonとTwitter APIを用いてリツイートを実行してみましょう!

 

関連:pythonでリツイートを自動化しよう!

関連:あなたに最適なpython独習の参考書は?各参考書の長所と短所をご紹介!

 

前提

この記事ではTwitterのAPIを使用します。

そのためにはTwitterでアプリ登録を行い、アクセストークンとシークレットキーを取得する必要があります。

これらの取得方法については以下の記事でご紹介していますので、お済でない方はこの機会にぜひ試してみてください。

関連:Twitter APIへの登録方法を画像で解説!

また、APIを用いたリツイートは、APIによるツイートと合わせて1日あたり2,400件までとされています。

さらに30分ごとのリミットもあるようなので、短時間でコードを乱発するとアカウント凍結の危険があります。

今回紹介する処理をwhile文による無限ループ内に書いてうっかり大量にAPIリクエストをしてしまった、と言ったことが無いように気を付けてください。

参考:Twitterリミットについて

 

やってみる

習うより慣れよ、実際にやってみましょう!

今回は@mojitoba_comアカウントによるこちらのツイートを対象にしてみます。

 

リツイートするツイートのIDを調べる

APIからリツイートするためには、そのツイートのIDが必要になります。

ここでIDとは@mojitoba_comのようなアカウントIDではなく、status IDを指します。

具体的には、以下のようにツイートのURLを見ることでIDを調べられます。

赤枠内の数字(例では1057605092721876992)をメモしておきましょう。

 

リツイートする

それでは実際にAPIからリツイートするコードを見てみましょう。

まずはTwitterのAPIに接続する準備をします。

>>> from requests_oauthlib import OAuth1Session
>>> CK = 'CONSUMER KEYを入力'
>>> CS = 'CONSUMER SECRETを入力'
>>> AT = 'ACCESS TOKENを入力'
>>> ATS = 'ACCESS TOKEN_SECRETを入力'
>>> twitter = OAuth1Session(CK, CS, AT, ATS)

ここでCONSUMER KEYなどには自分のアプリの該当する文字列を用いてください。

もしrequests_oauthlibライブラリを入れていない場合はターミナル、コマンドプロンプトで以下を実行してください。

$ pip install requests_oauthlib

関連:【python】ModuleNotFoundError: No module named ***の対処方法

 

次に、先ほど用意したstatus IDを変数に入れておきます。

>>> tweetid = 1057605092721876992

これで準備は整いました。

上で用意したツイートのstatus IDを用いてRTを実行してみましょう。

>>> url = "https://api.twitter.com/1.1/statuses/retweet/%d.json"%tweetid
>>> twitter.post(url) # retweet実行
<Response [200]>

リツイートが成功すると、上のように<Response [200]>と表示されます。

<Response [403]>が表示される場合は、既にそのツイートをリツイートしていないかを確認してください。

また、<Response [400]>が表示される場合はurlの入力ミスが考えられます。

 

リツイートを解除する

今度はリツイートを解除してみましょう。

先ほどとほとんど同じコードで実行することができます。

API用のURLがretweetからunretweetに変わっています。

>>> url = "https://api.twitter.com/1.1/statuses/unretweet/%d.json"%tweetid
>>> twitter.post(url) # unretweet実行
<Response [200]>

リツイートの時と同様に、問題なくリツイート解除が実行されれば<Response [200]>が表示されます。

一方でリツイートされていないツイートを解除しようとすると<Response [403]>が表示されます。

 

リツイートしなおす

最後に、「すでにリツイートされているツイートをもう一度リツイートする」コードをご紹介します。

上でご紹介したコードの合わせ技で実現することができます。

>>> url = "https://api.twitter.com/1.1/statuses/unretweet/%d.json"%tweetid
>>> twitter.post(url) # unretweet実行
>>> url = "https://api.twitter.com/1.1/statuses/retweet/%d.json"%tweetid 
>>> twitter.post(url) # retweet実行

上のように、一度必ずリツイート解除を実行してから、再度リツイートをすることで、「リツイートのしなおし」が可能です。

 

まとめ

pythonを用いてTwitterAPIからツイートのリツイート、その解除を行う方法についてご紹介しました。

これを用いることで、リツイートの自動化もできるようになります。

次の記事ではリツイートの自動化方法についてもご紹介しているので、是非あわせてご覧ください!

次回:pythonでリツイートを自動化しよう!

python
pickleでエラーならdillで保存する!【Python】

Pythonのpickleを使うと、いろいろなデータを保存出来て便利ですよね。 しかし、ファイルオブ …

Twitter
Twitter APIを使ってできることは?

いまの時代、マーケティングなどにおいてTwitterの分析は欠かせません。 そしてTwitterの分 …

python
1
【WP REST API解説】投稿を更新する(POST /posts/id)

Word PressのAPIを用いてすでに投稿されている記事を更新する方法について説明します。 あわ …