2016-06-10 2 views
1

У вас есть вопрос о API биллинга Softlayer. Когда я пытаюсь запустить код API для извлечения данных в маску объекта, я получаю следующее сообщение:Soflayer Billing API с использованием Ruby-Извлечение данных для пользователя для каждого пользователя

/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 ' из testAuthentication_old.rb: 53: в `'

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` 

аутентификация работала хорошо, но как-то его жалуется маски объекта. Можете ли вы, пожалуйста, дать понять. В другом посте на Softlayer упоминалось об изменении Биллинговых API. Если это так, мне нужно определить маску объекта по-разному? Не могли бы вы сообщить мне об этом? Любая помощь будет принята с благодарностью.

ответ

1

Кажется, что SoftLayer API for Ruby ожидает строку в объекте_маске, а не объект, который отображается в указанном примере here.

Во всяком случае, попробовать эту маску, пожалуйста:

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 

Я дам вам знать, если другие маски (тип объекта) больше не поддерживаются клиентом.

+0

Изменения, предложенные выше, работали. Теперь мы можем отображать данные. Большое спасибо Ruber. Цените быстрый поворот –