2016-06-10 6 views
1

Haben Sie eine Frage zu Softlayer Billing API. Wenn ich versuche, den API-Code auszuführen, um die Daten in eine Objektmaske zu extrahieren, erhalte ich einen Fehler wie folgt:Soflayer Billing API mit Ruby- Extrahieren pro Benutzer Abrechnungsdetails

/Library/Ruby/Gems/2.0.0/gems/softlayer_api-3.2.1/lib/softlayer /APIParameterFilter.rb:82:in object_mask': object_mask expects strings (ArgumentError) from /Library/Ruby/Gems/2.0.0/gems/softlayer_api-3.2.1/lib/softlayer/Service.rb:156:in object_mask ' von testAuthentication_old.rb: 53: in `'

require 'softlayer_api' 
require 'pp' 

user_id = "your user id" 
api_key = "your API key" 

object_mask = {"orderItem" => {"order" => {"userRecord" => {"username" => ""}}}, 
"invoiceItem" => {"totalRecurringAmount" => ""}} 

billing = SoftLayer::Service.new("SoftLayer_Account",:username => user_id,:api_key => api_key) 
user_bill=billing.object_mask(object_mask).getNextInvoiceTopLevelBillingItems 

pp user_bill 
for item in user_bill do 
if item.key?("orderItem") && 
item["orderItem"]["order"]["userRecord"]["username"] == "" 
pp("User " + "" + " has an invoice item of " + 
item["invoiceItem"]["totalRecurringAmount"].to_s()) 
end` 

die Authentifizierung funktioniert in Ordnung, aber irgendwie seine Klagen der Objektmaske. Kannst du bitte einen Einblick geben? In einem anderen Post auf Softlayer wurde erwähnt, dass Billing-APIs geändert wurden. Wenn ja, muss ich die Objektmaske anders definieren? Kannst du mich das bitte wissen lassen? Jede Hilfe würde sehr geschätzt werden.

Antwort

1

Es scheint, dass SoftLayer API for Ruby eine Zeichenfolge in der Objektmaske erwartet und nicht ein Objekt, das in dem angegebenen Beispiel here angezeigt wird.

Wie auch immer, versuchen Sie diese Maske bitte:

object_mask = "mask[orderItem[order[userRecord[username]]], invoiceItem[totalRecurringAmount]]" 

billing = SoftLayer::Service.new("SoftLayer_Account",:username => user_id,:api_key => api_key) 
user_bill=billing.object_mask(object_mask).getNextInvoiceTopLevelBillingItems 

Ich werde Sie wissen lassen, wenn die anderen Masken (Objekttyp) werden vom Client nicht mehr unterstützt.

+0

Die oben vorgeschlagenen Änderungen funktionierten. Wir können die Daten jetzt anzeigen. Vielen Dank Ruber. Schätzen Sie die schnelle Abwicklung –