半年前メインアカウントの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メソッドがないのが原因らしい
対策
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)
コメント