1

我已经使用 Foursquare API 和我的 Rails 应用程序设置了身份验证,现在是时候添加功能了。我对 Rails 不太精通——它不是我的第一语言。我想让商家与 Foursquare(工作)建立联系,然后将商家引导到一个页面,他们可以在该页面上查看其场所的唯一访客、场所的签到数量以及场所的市长是谁。我知道要使用哪些端点,只是不确定如何在 Rails 中实现它们。(访问令牌等)

谢谢!

回答后


我正在尝试实施 Turd Ferguson 的回答,但我一无所获。我不断收到错误消息,说该方法未定义。我想在用户通过身份验证后立即尝试简单的场地搜索。(创建动作)

另外,我正在使用 OmniAuth 进行身份验证。

session_controller.rb

class SessionsController < ApplicationController

  require 'foursquare'


  def create
    auth_hash = request.env['omniauth.auth']
    venues = Foursquare::search_venues("starbucks")
    render :text => venues
  end

  def failure
  end

  def destroy
    session[:user_id] = nil
    render :text => "Logged out!"
  end

  def callback
      code = params[:code]
      @access_token = foursquare.access_token(code, callback_session_url)
      session[:access_token] = @access_token

      redirect_to examples_path
  end


end

Foursquare.rb 类 Foursquare

  def self.search_venues(text)
    client.search_venues(:ll => '36.142064,-86.816086', :query => text)
  end

  def self.client
    @client ||= Foursquare2::Client.new(:client_id => '0YO3F0JNZIPVKG1DE01MNPB132D4JZ0QYRQSOWTZQKHHOPKB', :client_secret => 'GMBOGWUNL2GIKZZXQPSLE4BMFNGB5LDHQREH2UKUCK1TJ1L0')
  end


end
4

1 回答 1

2

您是否考虑过使用诸如foursquare2之类的宝石?

使用 gem,您可以创建一个 Foursquare 类,例如:

class Foursquare

    def self.search_venues(text)
        client.search_venues(:ll => '36.142064,-86.816086', :query => text)
    end

    def self.client
        @client ||= Foursquare2::Client.new(:client_id => 'your_client_id', :client_secret => 'your_secret')
    end
end

然后,您可以通过执行以下操作在任何您想要的地方调用它:

venues = Foursquare::search_venues "foobar"
于 2012-06-13T19:42:44.180 回答