Кто-нибудь может где-нибудь выложить пример создания записи в quickbooks online/intuit, используя ruby и httparty?
Я работаю над интеграцией в приложение ruby on rails, используя intuit в любом месте, и у меня возникла проблема с моим запросом POST при попытке создать новую запись. Мне удалось успешно получить данные (клиенты) с помощью команды POST, которая не требует данных XML в теле запроса, но у меня возникают проблемы при попытке создать новые записи с обязательными полями, которые необходимо передать в XML в теле запроса.
Я получаю один и тот же вид ошибки в любом объекте, для которого я пытаюсь создать запись: недопустимое или отсутствующее обязательное поле. Мне кажется, что XML в теле (где добавляются данные для обязательных полей) либо игнорируется (неверное форматирование?), либо не прикрепляется.
Я надеялся, что кто-то еще, знакомый с ruby, может опубликовать пример создания записи с использованием httparty. Если бы я мог видеть, как правильно передавать XML с помощью httparty, я мог бы решить свою проблему сам.
Я использовал пример с customer.com (https://code.intuit.com/integration/viewvc/viewvc.cgi/IntuitAnywhere-Ruby/customer.com/?root=intuitanywhere&system=exsy1003) в основном так, как опубликовано, с несколькими не относящимися к делу изменениями необходимо, чтобы заставить его работать в Rails 3.1. Я использую извлечение и обработку данных, представленные в примере, который выглядит как довольно стандартная оболочка API, созданная с использованием httparty.
Я использую извлечение, подобное тому, которое найдено в методе клиентов company_controller. Вот два разных способа, которыми я пытался отправить XML:
#########################################
#Example 1 - XML
e = @company.intuit_token.post("https://qbo.intuit.com/qbo1/resource/account/v2/#{@company.realm}",
{ :body =>
"<Account xmlns:ns2=\"http://www.intuit.com/sb/cdm/qbo\" xmlns=\"http://www.intuit.com/sb/cdm/v2\">
<Name>Test Account 2</Name>
<Desc>Test Account</Desc>
<Subtype>Savings</Subtype>
<AcctNum>5001</AcctNum>
<OpeningBalanceDate>2010-05-14</OpeningBalanceDate>
</Account>",
:headers => {
"Content-Type" => "application/xml"
}}
)
#########################################
#Example 2 - hash
e = @company.intuit_token.post("https://qbo.intuit.com/qbo1/resource/account/v2/#{@company.realm}",
{ :body => {
:Account => {
:Name => "Loan Account 2",
:Desc => "Loac Account 2",
:Subtype => "Savings",
:AcctNum => "5001",
:OpeningBalanceDate => "2011-04-22"
}
},
:headers => {
"Content-Type" => "application/xml"
}}
)