Tweepyでツイートしようとしたらエラーが出た

プログラム

半年前メインアカウントのTwitterAPIの申請をして、テストツイートのとき1度躓いたのにも関わらず…

すっかり忘れてしまって今サブ垢のほうでもおなじ躓きをしてしまいました…

またやらかしそうなので備忘録としてこちらに残しておきます。

こちらの記事はこういった方のお役に立ちます。

  • TwitterAPIの申請は通った
  • これからTweetするぞ!と思ったらエラー出た
  • パスワード間違えてるのかな…?
  • TweepError: Read-only application cannot POST.
  • APIサイトのどこいじればいいのかわからーん!

API使ってツイートしようと思ったらできない!なぜ?

今回はTweepyを使ってテストツイートを行いました

現在の仕様では以下のコードを実行してもエラーになると思います

後ほどちゃんと動くコードを記載しますのでそちらをご覧ください

import tweepy

CONSUMER_KEY = 'CONSUMER_KEY'
CONSUMER_SECRET = 'CONSUMER_SECRET'
ACCESS_TOKEN = 'ACCESS_TOKEN'
ACCESS_TOKEN_SECRET = 'ACCESS_TOKEN_SECRET'

# auth認証
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
# インスタンスの作成
api = tweepy.API(auth, wait_on_rate_limit=True)

# テストツイートのメッセージを作成し送信
message = 'test tweet!!'
api.update_status(status=message)

このコードの場合CONSUMER_KEY他4つのキーはAPI申請の際に取得したものをローカルPCの環境変数に入れてます。

os.environメソッドで取り出してます。

もちろんキー直打ちでも大丈夫です。

さて、エラーが出てしまいました。

You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. You can learn more here: https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-leve

'code': 453

初期設定なしでTweetしようとするとこんなかんじのエラーが出るはずです。

TwitterAPIウェブサイト内のデベロッパーポータルで設定を変えます。

APIの設定へたどり着く方法

歯車のマーク

Set up

設定方法

テストツイートを行う為には書き込みの権限も必要です。


Read and write あるいは Read and write and Direct message を選んでください。

URL必須のようですが、TwitterプロフィールのページURLを入力すれば大丈夫でした

キーが再発行されます

次のページにいくとキーが自動的に再発行されます

忘れずにKeyを上書きして保存しておいてください

さらにエラー

403 Forbidden
453 - You currently have Essential access which includes access to Twitter API v2 endpoints only. If you need access to this endpoint, you’ll need to apply for Elevated access via the Developer Portal. You can learn more here: https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-leve

現在、Twitter API v2エンドポイントへのアクセスのみを含むEssentialアクセス権を持っています。このエンドポイントへのアクセスが必要な場合は、開発者ポータルからElevatedアクセスに申請する必要があります。詳しくはこちらをご覧ください。

https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api#v2-access-leve

エラー日本語

さっきと同じようなエラーがでました

原因

新しいTweepyにはAPIメソッドがないのが原因らしい

参考1

参考2

対策

Tweepyを4.0.0以上にアップグレード

pip install tweepy==”バージョン指定”

あるいは

pip install –upgrade tweepy

でTweepyを4.0.0以上にします

コードを書き替える

import tweepy

CONSUMER_KEY = 'CONSUMER_KEY'
CONSUMER_SECRET = 'CONSUMER_SECRET'
ACCESS_TOKEN = 'ACCESS_TOKEN'
ACCESS_TOKEN_SECRET = 'ACCESS_TOKEN_SECRET'

client = tweepy.Client(consumer_key=CONSUMER_KEY, consumer_secret=CONSUMER_SECRET,
                    access_token=ACCESS_TOKEN, access_token_secret=ACCESS_TOKEN_SECRET)

# テストツイートのメッセージを作成し送信
message = 'test tweet!!'
client.create_tweet(text=message)

コメント

タイトルとURLをコピーしました