Данные запроса GET / POST Spark Api с использованием Ruby

Как написать сценарий, который получает список по идентификатору и сохраняет его в файл как JSON: http://sparkplatform.com/docs/api_services/listings

Как мне написать сценарий, который создает новую запись контакта, а затем печатает новую запись контакта (стандартный вывод подходит): http://sparkplatform.com/docs/api_services/contacts

SPARK_API Gem на странице github, чтобы ответить на вопросы: https://github.com/sparkapi/spark_api (предоставляет автоматический парсер)

КОД

SparkApi.client.get  "/listings/#{listing_id}", :_expand => "CustomFields"
SparkApi.client.post "/listings/#{listing_id}/contacts

Я новичок в Ruby, как мне правильно использовать запросы GET / POST?


person mph85    schedule 28.07.2019    source источник


Ответы (1)


Устанавливаем рубин, запускаем gem install spark_api

Это сценарий по документации:

Конечно, вам нужны SPARK_API_KEY и SPARK_API_SECRET, которые не должны быть частью кода, а должны быть размещены где-то в ENV.

require 'spark_api'
SparkApi.configure do |config|
  config.endpoint   = 'https://sparkapi.com'
  # Using Spark API Authentication, refer to the Authentication documentation for OAuth2
  config.api_key    = 'SPARK_API_KEY'
  config.api_secret = 'SPARK_API_SECRET'
end

listing_id = 12345
filename = 'my_file.json'

def get_listing(listing_id, filename)
  response = SparkApi.client.get "/listings/#{listing_id}", :_expand => "CustomFields"
  save_to_file(response, filename)
end

def create_contact(listing_id)
  SparkApi.client.post "/listings/#{listing_id}/contacts"
end

def save_to_file(response, filename)
  File.open(filename, 'w') do |f|
    f << response.body
  end
end

Конечно, вы можете использовать свой HTTP-клиент, например faraday или https://github.com/jnunemaker/httparty, чтобы выполнить работу, но используйте Gem, который обертывает всю логику api, когда она доступна.

person Christian    schedule 30.07.2019
comment
Попался, большую часть я понимаю. По сути, мне просто нужно создать запрос GET для сохранения файла как JSON и еще один запрос POST для создания новой контактной информации, верно? - person mph85; 31.07.2019
comment
Джуппа, я видел в твоем профиле, что ты использовал Javascript. Это в основном то же самое. - person Christian; 31.07.2019
comment
хорошо, звучит хорошо, просто нужно поискать синтаксис. Итак, напишите 2 метода, разделите их по соответствующим папкам / файлам, и тогда все должно быть правильно? драгоценный камень предоставляет методы HTTP? - person mph85; 31.07.2019
comment
да, отредактировал свой ответ, чтобы отразить ваш вопрос. попробуйте. - person Christian; 31.07.2019
comment
хорошо, я проверю, как только смогу. Просто нужно заменить соответствующие KEY и SECRET, и я должен быть в порядке? - person mph85; 31.07.2019
comment
Хорошо, спасибо, и этот последний метод похож на методы fs, предоставляемые NodeJs? Для чего это 'w'? - person mph85; 31.07.2019
comment
w или w + предназначены для записи в файлы. stackoverflow.com/questions/1581674/ - person Christian; 31.07.2019
comment
Позвольте нам продолжить это обсуждение в чате. - person Christian; 31.07.2019
comment
я еще не. - person mph85; 04.08.2019
comment
я не уверен, как это запустить - person mph85; 04.08.2019
comment
Invalid API key and/or request signed improperly (SparkApi::PermissionDenied) я добавил все правильные ключи и прочее - person mph85; 04.08.2019
comment
Код ошибки 1000 Неверный ключ API и / или неправильно подписанный запрос - это сообщение, указывающее на сбой аутентификации. Вопрос в том, не разрешает ли API больше использовать этот метод аутентификации или ваш ключ / секрет неверен. Возможно, стоит изучить другие методы аутентификации, например. oauth - ›github.com/sparkapi/spark_api/blob/master/script / - person Christian; 05.08.2019
comment
Йо, ценю всю помощь, только за то, что ответили и помогли, вы получили награду. Поздравляю. - person mph85; 06.08.2019