Вызов POST для Intercom API с использованием httparty не работает, потому что «тело запроса должно содержать запрос ha sh» - PullRequest
0 голосов
/ 18 июня 2020

Я хочу использовать httparty для выполнения POST-вызова Intercom API для поиска разговоров по определенным критериям. Сначала я протестировал в Postman, и он отлично работает (см. Снимок экрана по следующей ссылке) Вызов API внутри Postman Однако, когда я хочу выполнить этот вызов API в ruby с использованием гема httparty, он не работает . Я использовал следующий код:

  headers: {
      "Content-Type":  "application/json",
      Authorization: "Bearer {{value of the token}}",
      Accept: "application/json",
  },
  query: {
      "field": "updated_at",
      "operator": ">",
      "value": 1592248820
  }
}

results = HTTParty.post('https://api.intercom.io/conversations/search', options)

Он возвращает мне следующую ошибку:

{"type":"error.list","request_id":"0001t1gne3j7pscoq2n0","errors":[{"code":"invalid_query","message":"Query body must contain a query hash"}]}

Это действительно странно, потому что я тестировал этот синтаксис для другого POST-вызова Intercom API, используя точно тот же синтаксис, и он работал нормально. См. Ниже:

  headers: {
      "Content-Type":  "application/json",
      Authorization: "Bearer {{value of the token}}",
      Accept: "application/json",
  },
  query: {
        "email": "wash@serenity.io",
        "name": "Hoban Washburn",
        "role": "user"
  }
}

results = HTTParty.post('https://api.intercom.io/contacts', options)

1 Ответ

0 голосов
/ 18 июня 2020

Моя первая мысль заключается в том, что запрос должен быть в теле вызова, поэтому я предлагаю попробовать ...

  headers: {
      "Content-Type":  "application/json",
      Authorization: "Bearer {{value of the token}}",
      Accept: "application/json",
  },
  body: {
    query: {
        "field": "updated_at",
        "operator": ">",
        "value": 1592248820
    }
  }
}

Это также лучше соответствует вашему вызову Почтальона.

...