访问AngelList API

时间:2015-11-12 20:20:44

标签: ruby-on-rails ruby oauth omniauth

我正在尝试为面向非用户的应用访问AngelList API。我设法through curl但我想在Rails中自动化它。你如何为此目的使用oAuth策略?你在哪里存储访问令牌(没有会话)?

如果有人能够提供我需要的所有代码(包括控制器和路由),我将不胜感激,因此我可以使用oAuth strategy之类的代码从我的代码中的GET https://api.angel.co/1/startups/1获取记录

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :angellist, ENV['ANGELLIST_KEY'], ENV['ANGELLIST_SECRET']
end

1 个答案:

答案 0 :(得分:1)

要在您的应用程序中访问AngelList,您可以:

  1. 使用AngelList API Ruby Gem

    gem install angellist_api

  2. 如果您还没有登录他们的API文档,请注册AngelList(请参阅Angel.co/api)。在他们的API页面上,您可以为您的应用程序创建一个"令牌"注册您的应用程序。

  3. 使用您的API密钥创建RoR初始化程序文件。我建议使用Figaro gem或现在的RoR标准.env文件来设置开发,测试,生产和升级的变量(如果适用)。

  4. 奖励:您也可以通过在AngelList API URL中创建包含API密钥的ENV,在没有gem的情况下手动执行此操作。如果你打算按照你提到的方式调用记录并可能将它们保存到数据库中,你可以使用:

    def self.getAngellist
        response = Net::HTTP.get_response(URI.parse(ENV["ANGELIST_API_URL"]))
        data = response.body
        parsed_response = JSON.parse(data)
        parsed_response["startups"].each do |startup|
          if Startup.where(:foreign_id => startup["id"]).blank?
            unless Startup.name == startup["name"]
              e = Startup.new(:foreign_id => startup["id"], :name => startup["name"], :description => HTML_Truncator.truncate(startup["product_desc"], 50), :url => startup["company_url"], :youtube => startup["video_url"], :facebook => startup["facebook_url"], :twitter => startup["twitter_url"], :linkedin => startup["linkedin_url"], :crunchbase => startup["crunchbase_url"], :angellist => startup["angellist_url"])
              e.save
            end
          end
        end
      end