ruby と httparty を使用して、どこでも Quickbooks online / intuit にレコードを作成する例を投稿できますか?
どこでも intuit を使用して ruby on rails アプリへの統合に取り組んでおり、新しいレコードを作成しようとすると POST リクエストで問題が発生します。要求の本文に XML データを必要としない POST コマンドを使用して、データ (顧客) を正常に取得できましたが、渡す必要がある必須フィールドを持つ新しいレコードを作成しようとすると問題が発生しますリクエストの本文の XML。
レコードを作成しようとしているエンティティで、同じ種類のエラーが発生します: 無効または必須フィールドがありません。本文 (必須フィールドのデータが追加される場所) の XML が無視されている (フォーマットが正しくない?) か、添付されていないように思えます。
ruby に詳しい誰かが、httparty を使用したレコード作成の例を投稿してくれることを期待していました。httparty を使用して XML を正しく渡す方法がわかれば、自分で問題を解決できます。
私は customer.com の例 ( https://code.intuit.com/integration/viewvc/viewvc.cgi/IntuitAnywhere-Ruby/customer.com/?root=intuitanywhere&system=exsy1003 )を使用してきました。 Rails 3.1 で動作させるには無関係な変更が必要でした。サンプルで提供されているデータのプルと処理を使用しています。これは、httparty を使用して構築された非常に標準的な API ラッパーのように見えます。
company_controller customers メソッドにあるものと同様のプルを使用しています。XML を送信しようとした 2 つの異なる方法を次に示します。
#########################################
#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"
}}
)