1. ホーム
  2. ruby

[解決済み] RailsアプリでStocktwitsのaccess_tokenを取得するにはどうすればよいですか?

2022-03-11 22:45:19

質問

問題を解決してください。私は、omniauth-stocktwits gemを使用してStocktwitsと統合されたウェブサイトを持っています。私はコメントストリームを取得するためにStocktwits APIを使用したいと思います。だから、私はaccess_tokenを必要とします!私は、あなたがそれを行うことができます。

ユーザーがStockTwitsで私のアプリを認証した後、私は私が"code"パラメータで私の/callback URLにリダイレクトされることを確認します。omniauthのコードを見ると、この"code"フィールドは何も使われていないことがわかります。というわけで、access_tokenを取得する方法を試してみることにしました。

curl -X POST https://api.stocktwits.com/api/2/oauth/token -d 'client_id=MY_CLIENT_ID&client_secret=MY_SECRET&code=CODE_FROM_REDIRECT_PARAMS&grant_type=authorization_code&redirect_uri=http://my.site.url'

何度もトライしていました。gurlで、HTTParty(Rubyで書かれた私のサイト)で - 1つの結果。

"errors"=>["code doesn't exist or has expired"]}

または {"response":{"status":403},"errors":[{"message":"Permission denied"}]}となります。

すべてのスコープが使用され、アプリにストリームの読み取りを許可していることは確認しましたので、どのようなパーミッションが拒否されたのかはわかりません。

取得したばかりなのに、どうしてコードが期限切れになるのかわからない :(

エラーはどこですか?access_tokenはどのように取得できますか?お願いします、どんなヘルプでも結構です :)

解決方法は?

これが正しいフローであり、コードを取得した後にアクセストークンを取得するための正しいエンドポイントです。以下は認証フローです。 http://stocktwits.com/developers/docs/authentication

無効なコードが表示される理由がよくわからないのですが、omniauth gemを使わずにユーザーのコードを取得してみてはいかがでしょうか?または、omniauth-stocktwits gemの作者に教えてあげてください。 https://github.com/jesseyoungmann/omniauth-stocktwits