Перевод команды curl в httparty

#ruby-on-rails #ruby

#ruby-on-rails #ruby

Вопрос:

Я хочу использовать некоторые данные API из приложения Rails. Примером curl является curl --data 'api_key=your_api_keyamp;api_secret=your_api_secretamp;host_id=your_user_host_id' https://api.zoom.us/v1/webinar/list я экспериментировал с этим в терминале, и я вижу ожидаемые ответы. Сейчас я экспериментирую с ruby-скриптом, использующим httparty. Мой вопрос в том, как я должен обрабатывать ‘материал’ перед конечной точкой (api_key … secret … ect)? Это заголовки?

Что касается curl —data, то мне только говорят, что это post-запрос, но я не уверен, как это переводится в httparty.

Вот первая попытка:

 require 'httparty'

api_key = 'myKey'
api_secret = 'secret'
host_id = 'host'
data_type = 'JSON'

response = HTTParty.post("api_keyamp;api_secretamp;host_idamp;data_type https://api.zoom.us/v1/webinar/list/registration")

puts response.parsed_response
  

Но это дает мне неверный ответ URI. Если я запускаю этот же скрипт только с конечной точкой, я получаю ответный код от zoom, в котором говорится, что требуются ключ API и секрет.

Ответ №1:

Глядя на этот пример, я думаю, что это должно сработать:

 require 'httparty'

api_key = 'myKey'
api_secret = 'secret'
host_id = 'host'
data_type = 'JSON'

options = {
  body: {
    api_key: api_key,
    api_secret: api_secret,
    host_id: host_id,
    data_type: data_type
  }
}
response = HTTParty.post("https://api.zoom.us/v1/webinar/list/registration", options)

puts response.parsed_response
  

Я получаю ответ:

{«ошибка»=>{«код»=>200, «сообщение» => «Недопустимый ключ api или секрет».}}

я думаю, это шаг в правильном направлении.

Ответ №2:

Нет, это не заголовки, это параметры. Заголовок обычно обозначается флагом -H.

Попробуйте это:

 require 'httparty'

query_params = {api_key: 'myKey',
                api_secret: 'secret',
                host_id: 'host',
                data_type: 'JSON'}

response = HTTParty.post("api_keyamp;api_secretamp;host_idamp;data_type https://api.zoom.us/v1/webinar/list/registration", :query => query_params)

puts response.parsed_response