2012-02-07 13 views
2

誰かがrubyとhttpartyを使用して、どこでもオンライン/ intuitどこでもquickbooksでレコードを作成する例を投稿できますか?Rubyとhttpartyを使用してQuickbooks OnlineとIntuit Anywhereのレコード例を作成しますか?

私はどこでも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で動作させるためにいくつかの無関係な変更が必要です。私はこの例で提供されているデータのプルとハンドリングを使用しています。これはhttpatyを使用して構築されたかなり標準的なAPIラッパーのようです。

私は、company_controller customersメソッドにあるものと同様のプルを使用しています。

######################################### 
#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" 
    }} 
) 

答えて

1

私が間違ってIntuit社が提供するcustomer.comの例では、POST呼び出しを行うためにhttpartyの宝石を使用していたので、私は間違った構文を使用していたと仮定:ここで私はXMLを提出しようとした2種類の方法があります。実際にOAuth gemのPOSTコールを使用しています。構文は次のとおりです。http://oauth.rubyforge.org/rdoc/classes/OAuth/AccessToken.html

また、XML本体を受け入れるためにIntuit Anywhereサービスを取得するためにヘッダを変更する必要がありました。ここで最後にどこかのIntuitを使用してオンラインQuickBooksの中でレコードを作成するために私のために働いていたコードは次のとおりです。

e = @company.intuit_token.post("https://qbo.intuit.com/qbo1/resource/account/v2/#{@company.realm}", "<Account xmlns:ns2=\"http://www.intuit.com/sb/cdm/qbo\" xmlns=\"http://www.intuit.com/sb/cdm/v2\"><Name>Test Account </Name><Desc>Test Account</Desc><Subtype>Savings</Subtype><AcctNum>5002</AcctNum><OpeningBalanceDate>2010-05-14</OpeningBalanceDate></Account>", {"Content-Type" => "application/xml", "standalone" => "yes", "encoding" => "UTF-8"}) 
+0

あなたがここにトークンを作成し、rubyonrailsでポストを使用してXMLやJSONを使用して、請求書APIを作成するためのコードを投稿することができますか? – harsh4u

関連する問題