2015-11-12 170 views
0

我正试图访问面向非用户的应用程序的AngelList API。我设法这样做through curl,但我想在Rails中自动化它。你如何使用oAuth策略达到这个目的?你在哪里存储访问令牌(没有会话)?访问AngelList API

如果有人能够给我所需的所有代码(包括控制器和路由),我将不胜感激,因此我可以使用如下所示的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

OAuth是针对注册用户的/记录,所以他们在通过前端应用程序做因为RoR站点是一个非用户应用程序?如果是这样,我建议在客户端而不是服务器端执行oAuth。如果您试图访问数据库来获取记录而不是授权,那么您是否尝试过Angellist API的Ruby包装?请参阅:https://github.com/paulsingh/angellist-api –

+0

是的,该应用程序是非面向用户的。但是,如何获得该宝石所需的不记名令牌?我可以通过curl手动执行(https://angel.co/api/oauth/faq),但我猜这些令牌会过期,所以我必须始终手动执行此操作? – migu

+1

OAuth是为用户登录的,所以由于面向非用户应用程序的压力(除非我错了),似乎并不是您要查找的内容。相反,你想使用一个API密钥 - https://github.com/paulsingh/angellist-api。如果它不是你想要的,你能提供一些关于你想要做什么的细节(例如:用例)。 –

回答

1

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

  1. 使用AngelList API红宝石宝石

    创业板安装angellist_api

  2. 注册为AngelList,如果你的避风港”已经访问过他们的API文档(请参阅Angel.co/api)。在他们的API页面上,您可以通过注册您的应用程序来为应用程序创建一个“令牌”。

  3. 使用您的API密钥创建一个RoR初始化文件。如果适用,我建议使用Figaro宝石或RoR的标准.env文件来设置开发,测试,生产和分段的变量。

奖励:您还可以通过在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