Open1

twitterAPIでツイートを投稿できない時の原因と解決

portgroundportground

やりたいこと

POST statuses/updateのエンドポイントを用いて、TwitterAPIでツイートする。https://developer.twitter.com/en/docs/twitter-api/v1/tweets/post-and-engage/api-reference/post-statuses-update

トラブル

401 Unauthorized エラーで失敗する。
https://developer.mozilla.org/ja/docs/Web/HTTP/Status/401

HTTP 401 Unauthorized は、有効な認証資格が不足していることによりリクエストが適用されないことを示すクライアントエラーのレスポンスコードです。

ちなみに他のエンドポイントでは問題なく成功する。
例)

  • favorites/list
  • statuses/user_timeline
  • statuses/filter

原因と解決方法

原因

API側の設定。APIを発行したプロジェクトのApp permissions設定が「Read」になっていたため。この設定でできることはRead Tweets and profile informationであり、ツイート投稿のようなPostはできない。

解決方法

APIを発行したプロジェクトのApp permissions設定を「Read and Write」に変更する。
変更後、Authentication Tokensを再生成する。

まとめ

TwitterAPIでツイートできなかったのは、そもそも🔌コンセントが抜けていた的な根本的な原因でした。