4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Twitter APIを使用してツイートしたいけど"Your credentials do not allow access to this resource."が出てくる時の対処法

Last updated at Posted at 2020-11-15

前提/環境

  • Twitter(Twitter for Node.js)というライブラリを使用しています
  • FirebaseのCloudfunctionsを使用してその中で上記のTwitterを使用してロジックを作っています
  • Twitter Developersでの各種キーの取得(Consumer API keys, Access token & access token secret)は全て終わっています

やりたいこと、できなかったこと

  • 自分が作ったWebアプリケーションの中で、Twitterでログインしたユーザが各自のTwitterアカウントでツイートできるようにすること

原因

  • 原因は、以下のようにbearer_tokenをセットしてしまっていたことでした
functions/index.js
      const client = new Twitter({
        consumer_key: vz***** /** consumer key */,
        consumer_secret: mT***** /** consumer secret */,
        bearer_token: ******* /** Bearer Token */,
        access_token_key: 11*****,
        access_token_secret: 0d*******
      });

Bearer Tokenを使用してユーザーコンテキスト(statuss / home_timelineなど)を必要とするエンドポイントをリクエストしてはいけないみたいです。

以下のように修正して無事にTwitter投稿ができました。

functions/index.js
      const client = new Twitter({
        consumer_key: vz***** /** consumer key */,
        consumer_secret: mT***** /** consumer secret */,
        access_token_key: 11*****,
        access_token_secret: 0d*****
      });

(TwitterAPIをNodeで何かしたい時は、Twitterライブラリ使うのがおすすめです。)

以上です。何かのお役にたてば幸いです!

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?