2012-02-07 66 views
2

有人可以發表一個創建記錄在quickbooks online/intuit任何地方使用ruby和httparty的例子嗎?使用Ruby和httparty爲Quickbooks Online和Intuit Anywhere創建記錄示例?

我正在嘗試創建新記錄時,在使用intuit的rails應用程序上集成ruby,並且遇到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客戶方法中找到的拉。這裏有兩種不同的方法我都試過提交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" 
    }} 
) 

回答

1

我錯誤地以爲用的是httparty寶石,使POST調用由直覺提供的customer.com例子,所以我使用了錯誤的語法。他們實際上使用了OAuth gem的POST調用,他的語法可以在這裏找到:http://oauth.rubyforge.org/rdoc/classes/OAuth/AccessToken.html

我還必須修改頭以使Intuit Anywhere服務接受XML主體。下面是最終爲我工作創造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 2014-03-14 11:25:39

相關問題