組んでいる途中で400やら403、404が出てきたので
公式からのメモです。
エラーコードと応答 - Twitter 開発者ドキュメント 日本語訳
このサイトではTwitter開発者ドキュメントの日本語訳を公開しています。Twitter API やTwitter Cardなど、Twitterでの開発に役立つ様々な情報が記載されています。
頻出エラー400,403,404の概要
400 | 認証エラーで出る |
403 | リクエストはいいけど成り立たない たとえば既にフォローしてる人にフォローリクエストとか |
404 | URLのミスや指定のIDが見つからない destroyでID指定すると見つからなかったりする |
HTTP ステータスコード
エラーコードと応答 - Twitter 開発者ドキュメント 日本語訳
このサイトではTwitter開発者ドキュメントの日本語訳を公開しています。Twitter API やTwitter Cardなど、Twitterでの開発に役立つ様々な情報が記載されています。
こちらからの転記です。
The Twitter API では、全てのリクエストに対して適切なHTTP ステータスコードを返すようにしています。
コード | テキスト | 説明 |
---|---|---|
200 | OK | 成功! |
304 | Not Modified | 新たなデータは取得されませんでした。 |
400 | Bad Request | このリクエストは無効、もしくはサポートされていません。付随するエラーメッセージで詳細な説明がされています。 API v1.1では、認証をしていないリクエストは無効と見なされ、この応答が返ってきます。 |
401 | Unauthorized | 認証資格情報 が不足しているか、正しくありません。 またそれ以外の場合でも、例えばAPI v1エンドポイントへリクエストを送信した場合は現在では全て401 を返すようになっています (代わりに API v1.1 を使ってください)。 |
403 | Forbidden | リクエストの形式は問題ありませんが、それが拒否されたかアクセスが認められていません。付随するエラーメッセージで理由を説明しています。 このコードは、更新制限が原因でリクエストが拒否された場合に使用されます。 |
404 | Not Found | リクエストしたURLが無効か、ユーザー情報などのリクエストしたリソースが存在しません。またリクエストした形式が、リクエスト対象のメソッドでサポートされていない場合も返されます。 |
406 | Not Acceptable | リクエストで不正な形式が設定されていた場合に、検索APIによって返されます。 |
410 | Gone | このリソースは廃止されています。APIエンドポイントが停止していることを示すために使われます。例えば: “Twitter REST API v1 はもうすぐ機能停止します。 API v1.1へ移行してください。” |
420 | Enhance Your Calm | 速度制限に引っかかった場合に、検索APIとトレンドAPI バージョン1によって返されます。 |
422 | Unprocessable Entity | POST account / update_profile_bannerへアップロードされた画像を処理することができない場合に返ります。 |
429 | Too Many Requests | API v1.1で、リソースごとに決められたアプリケーションの速度制限を使い果たしたためにリクエストが処理できなかった場合に返されます。API v1.1 の速度制限を参照してください。 |
500 | Internal Server Error | 何かが破損しています。開発者フォーラムへ報告をお願いします。そうすれば Twitter のチームで調査が可能です。 |
502 | Bad Gateway | Twitter がダウンしているか、更新作業中です。 |
503 | Service Unavailable | Twitter のサーバは起動していますが、リクエストが多すぎる状態です。時間を置いて再試行してください。 |
504 | Gateway timeout | Twitter サーバは起動していますが、スタック内でなんらかの障害が発生したためリクエストを処理できませんでした。時間を置いて再試行してください。 |
付随するエラーメッセージの確認方法
twitter.get(user_url,params=params)
でリクエストを飛ばしたりするかと思いますけど
res = twitter.get(user_url,params=params)
res.text
こうやって中身を覗いてあげると
'{"errors":[{"parameters":{"id":[":id"]},"message":"The `id` query parameter value [:id] does not match ^[0-9]{1,19}$"},{"parameters":{"XXXXXXXXXX":[""]},"message":"The query parameter [XXXXXXXXXX] is not one of [id,expansions,tweet.fields,user.fields]"}],"title":"Invalid Request","detail":"One or more parameters to your request was invalid.","type":"https://api.twitter.com/2/problems/invalid-request"}'
こんな感じで見られます。