【发布时间】:2015-11-14 04:52:45
【问题描述】:
我正在尝试为非面向用户的应用访问 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
【问题讨论】:
-
OAuth 用于注册/登录用户,那么由于 RoR 站点是非面向用户的应用程序,因此他们是否通过前端应用程序进行操作?如果是这样,我建议在客户端而不是服务器端进行 oAuth。如果您尝试访问数据库以获取记录而不是授权,您是否尝试过 Angellist API 的 Ruby 包装器?见:github.com/paulsingh/angellist-api
-
是的,该应用程序不面向用户。但是我如何获得该宝石所需的不记名令牌?我可以通过 curl (angel.co/api/oauth/faq) 手动执行此操作,但我猜这些令牌已过期,所以我必须一直手动执行此操作?
-
OAuth 适用于登录的用户,因此由于非面向用户的应用程序的压力(除非我弄错了),这似乎不是您想要的。相反,您想使用 API 密钥 - github.com/paulsingh/angellist-api。如果您不想要它,您能否提供一些有关您正在尝试做的事情的详细信息(例如:一个用例)。
-
你说得对。但我认为 AngelList 没有提供除 oAuth 之外的其他身份验证方式:angel.co/api。此外,gem github.com/paulsingh/angellist-api 说您需要一个带有指向此处 self-issued.info/docs/draft-ietf-oauth-v2-bearer.html 的链接的不记名令牌,这似乎只能通过 oAuth 获得,对吗?我不想使用 oAuth,但我看不到其他选项,或者我错过了什么?
-
您是否按照 angelist-api 上的说明进行操作?配置链接会将您发送到 AngelList 的 API 部分,您可以在其中为您的应用创建令牌。这是一个开源项目,我从 AngelList 中获取数据。 github.com/acpk/startupri 通过我的应用程序的 API 令牌。
标签: ruby-on-rails ruby oauth omniauth