TwitterAPIを使ってツイートできない時の対処法


この記事を書くに至った経緯

高専三年にもなってなにも専門的なことを自主的にできていなく、何かしたいなぁと思っていたところつよつよの友人に助けを求めたら"twitter動かしてみれば"と助言をいただいたためtwitterAPIを使いTwitterに投稿しようしました。
しかし投稿しようとするとエラーになってしまい出来なかったので対処法を共有しようと思いました。(テスト期間)
※同じ症状で記事を書かれている方がいたのですが、2015年の記事で古く、TwitterDeveloperのサイトも仕様が変わっていたので最新版を書こうと思いました。
【TwitterAPI】エラー「Read-only application cannot POST.」の対処法

環境

この記事ではwindows10にインストールしたpython3.8を使っています。

Twitter APIについて

TwitterAPIを利用するにあたって参考にした記事はこちら
Twitter API 登録 (アカウント申請方法) から承認されるまでの手順まとめ

コード

postTweet.py
import tweepy
import config #各種token

#Oauth認証処理
auth = tweepy.OAuthHandler(config.consumer_key,config.consumer_secret)
auth.set_access_token(config.token,config.token_secret)
api = tweepy.API(auth)

#投稿
text = 'Test tweet from python'
api.update_status(text)
config.py
consumer_key = '************'
consumer_secret = '***********'
token = '***********'
token_secret = '***********'

エラー内容

tweepy.error.TweepError: Read-only application cannot POST.

原因

Twitter Appの設定がRead onlyになっているため書き込みができない(デフォルトだとこうなってるみたいです)

対処法

Twitter developers公式
上のリンク先に飛んでPROJECT APPで作成したプロジェクト歯車のマークをクリックし、設定画面に行きます。

少し下にスクロールするとこのような設定画面があるのでEditをクリック。

Read and Wrhite か Read+Write+Direct Messagesを選択しSave

これでいける!

と思いきや各種tokenを再発行しないと無理っぽいです。
再発行した各種tokenをコードに反映させれば終わりです。
これからは投稿ができたのでtweepyの公式リファレンスを参考にしながらいろいろいじれたらいいなぁと思ってます。(テスト期間が終わったら)