【问题标题】:Foursquare API with Rails app?Foursquare API 与 Rails 应用程序?
【发布时间】:2012-06-13 19:40:15
【问题描述】:

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

谢谢!

回答后


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

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

sessions_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 四方类

  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

【问题讨论】:

    标签: ruby-on-rails api foursquare endpoints


    【解决方案1】:

    您是否考虑过使用 foursquare2 之类的 gem?

    使用 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"
    

    【讨论】:

    • 我以前看过这个 gem,但我只是阅读了文档,它会支持我需要做的事情。我到底在哪里调用函数?例如,我应该在哪个文件中实例化客户端?
    • 我已经更新了我的答案,以包含一个如何创建可以静态调用的类的示例。我建议把这个类放在你的 lib 目录中。添加 Rails 后,您可能需要重新启动 Rails 应用程序才能获取新文件
    • 我明白了,这是有道理的。一旦成功实施,我将接受您的回答。
    • 我重新启动了应用程序,但我收到一条错误消息,提示 undefined method search_venues' for Foursquare:Module`... 有什么想法吗?
    • 不会是 Foursquare2::Venues::search_venues 吗?还是我读错了 API?
    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多