前提/環境
- 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ライブラリ使うのがおすすめです。)
以上です。何かのお役にたてば幸いです!