Rails外部Api呼叫

时间:2018-01-18 00:20:00

标签: ruby-on-rails api rest-client

如何使用带有api令牌的rest-client gem调用外部api?

我正在做这样的事情

RestClient.get('api.openweathermap.org/data/2.5/weather?id=2172797', headers={appid: 'xxxxxxxxxxxxxxxxxxxxxxx'})

但这给了我一个未经授权的回应。令牌标题的正确名称是什么? Open weather api

我无法解决这个问题。

2 个答案:

答案 0 :(得分:2)

尝试使用字符串插值将API_TOKEN放入url,使其看起来像这样。

  

http://api.openweathermap.org/data/2.5/forecast?id=524901&APPID=1111111111

所以:

RestClient.get("api.openweathermap.org/data/2.5/weather?id=2172797&APPID=#{API_TOKEN}")

答案 1 :(得分:-1)

我应该把APPID放在params hash中。 所以我找到的最佳解决方案是创建ENV变量并在我的文件中使用它。然后我就可以打电话了。

RestClient.get 'http://api.openweathermap.org/data/2.5/weather?q=London', {params: {APPID: API_KEY}}