2015-11-12 3 views
0

Я пытаюсь получить доступ к API AngelList для приложения, не ориентированного на пользователя. Мне удалось сделать это through curl, но я хочу автоматизировать его в Rails. Как вы используете стратегии oAuth для этой цели? И где вы храните токен доступа (нет сеанса)?Доступ API AngelList

Я был бы признателен, если бы кто-нибудь мог дать мне весь необходимый код (включая контроллер и маршруты), поэтому я могу использовать 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 на стороне клиента, а не на стороне сервера. Если вы пытаетесь получить доступ к базе данных для получения записей, а не авторизации, попробовали ли вы Ruby-оболочку для API-интерфейса Angellist? См. 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 рубин Gem

    камень установить angellist_api

  2. Зарегистрируйтесь на AngelList, если у вас нет» t и посетить их документацию по API (см. Angel.co/api). На странице API вы можете создать «токен для своего приложения», зарегистрировав свое приложение.

  3. Создайте файл инициализации RoR с помощью ключа API. Я рекомендую использовать драгоценный камень Figaro или стандартный файл .env RoR для установки вашей переменной для разработки, тестирования, производства и постановки, если это применимо.

Бонус: вы также можете сделать это вручную без драгоценного камня, создав ENV, который содержит ваш ключ API в URL-адресе API AngelList. Если вы собираетесь назвать записи, как вы упомянули, и потенциально сохранить их в базу данных, вы можете использовать:

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 
Смежные вопросы