访问 AngelList API

Access AngelList API

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

如果有人能给我所有需要的代码(包括控制器和路由),我将不胜感激,这样我就可以使用如下所示的 oAuth strategyGET https://api.angel.co/1/startups/1 中的任何地方获取记录我的代码。

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

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

  1. 使用 AngelList API Ruby Gem

    gem 安装 angellist_api

  2. 如果您还没有注册 AngelList,请注册并访问他们的 API 文档(参见 Angel.co/api)。在他们的 API 页面上,您可以通过注册您的应用来创建 "token for your application"。

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

奖励:您也可以在没有 gem 的情况下手动执行此操作,方法是创建一个包含 AngelList API URL 中的 API 密钥的 ENV。如果您要像您提到的那样调用记录并将它们保存到您的数据库中,您可以使用:

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