Поиск API Twitter в Rails App не аутентифицируется - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть Rails Api, я хочу сделать запрос к Search api из Twitter.

У меня есть твиттер контроллера, который выполняет логику:

class Api::V1::TweetsController < Api::V1::BaseController
  def index

    client = Twitter::REST::Client.new do |config|
      config.consumer_key        = "secret"
      config.consumer_secret     = "secret"
      config.access_token        = "secret"
      config.access_token_secret = "secret"
    end

    @result = client.search("to:ruby", result_type: "recent").take(3)

(позже я сделаю рефакторинг секретов)

API 'view' выглядит следующим образом:

Я использовал следующие драгоценные камни:

ruby '2.5.3'
gem 'omniauth-twitter'
gem 'twitter'

В сети разработчиков Твиттера у меня есть следующее:

Callback URL
http://127.0.0.1:3000
http://127.0.0.1:3000/auth/twitter/callback

Я занимаюсь разработкой с localhost

Когда я делаю запрос с помощью curl, происходит следующее:

{
  "status": 500,
  "error": "Internal Server Error",
  "exception": "#<OmniAuth::NoSessionError: You must provide a session to use OmniAuth.>",
  "traces": {
    "Application Trace": [],
    "Framework Trace": [
      {
        "id": 0,
        "trace": "omniauth (1.9.0) lib/omniauth/strategy.rb:180:in `call!'"

Если я проверю это в браузере, я вижу следующее:

unless env['rack.session']
        error = OmniAuth::NoSessionError.new('You must provide a session to use OmniAuth.')
        raise(error)
      end

      @env = env

И в качестве заголовка: OmniAuth :: NoSessionError - Вы должны предоставить сеанс для использования OmniAuth.

Я очень смущен, потому что я не хочу добавлять какие-либо журналы в систему (с разработкой или без), я просто хочу использовать API поиска, где вам не нужен какой-либо пользователь.

Я не уверен, что делаю что-то не так или вам нужно пройти аутентификацию пользователя, чтобы использовать API поиска.

...