質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

Q&A

解決済

2回答

8244閲覧

TwitterAPIが403を返して失敗します

yururi555

総合スコア5

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

0グッド

0クリップ

投稿2022/01/15 06:05

TwitterAPIが403を返して失敗します
言語はPythonで、実行したコードはよくあるサンプルコードのコピーです。

Python

1#coding: UTF-8 2from requests_oauthlib import OAuth1Session 3import settings 4 5print(settings.CONSUMER_KEY) 6print(settings.CONSUMER_SECRET) 7print(settings.ACCESS_TOKEN) 8print(settings.ACCESS_TOKEN_SECRET) 9twitter = OAuth1Session(settings.CONSUMER_KEY, settings.CONSUMER_SECRET, settings.ACCESS_TOKEN, settings.ACCESS_TOKEN_SECRET,"https://www.youtube.com/") 10 11url = "https://api.twitter.com/1.1/statuses/update.json" # エンドポイント 12 13tweet = "test " 14params = {"status" : tweet} 15 16 17#res = twitter.post(url, params = params) # 実際にツイートされるので注意 18res = twitter.get(url, params = params) 19 20if res.status_code == 200: 21 print("成功") 22else: 23 print("失敗") 24 print(res)

実行結果は以下の通り、403が返ってきてしまい、失敗してしまいます。
失敗
<Response [403]>

なお、settings.pyでは各APIキーやトークンを設定しており、このコードで参照してprintしているタイミングでは正常に取得できています。
また、各キーのうち間違えなども数回試しており、正常に入力できていると思います。

原因や可能性のアドバイスをよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

HTTP の 403 Forbidden クライアントエラーレスポンスコードは、サーバーがリクエストを理解したものの、認証が拒否されたことを示します。

https://developer.mozilla.org/ja/docs/Web/HTTP/Status/403

403ですので、認証が拒否されているように見えます。
最近のTwitterのAPIの事情は把握していないのですが、次の引用にあるような認証のステップは必要そうに思いました。

py

1# First step, fetch the request token. 2# Second step. Follow this link and authorize 3# Third step. Fetch the access token 4# Done. You can now make OAuth requests.

https://requests-oauthlib.readthedocs.io/en/latest/api.html#oauth-1-0-session

投稿2022/01/15 08:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ご回答いただいた方ありがとうございました。
2021年11月のTwitterの仕様変更でV1.1でアクセスできない権限(Essential)になっていたことが原因でした。
Twitter側へ申請して上級資格にしてもらうことで解決しました。

投稿2022/01/17 00:21

yururi555

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問