我使用紅寶石,sinatra和twilio。以下代碼會購買一個數字,然後將該數字插入到我的數據庫中。我還想獲得返回的34個字符的電話號碼「sid」並將其插入到我的數據庫中,但我不知道如何訪問它。當我使用REST API購買Twilio號碼時,如何獲得電話號碼SID?
下面是代碼:
get '/buy_phone_number'do
#get subbacount credentials from my db
user_key = users.where(:validation => cookie).join(:credentials, :user_id => :id).get(:user_key)
user_token = users.where(:validation => cookie).join(:credentials, :user_id => :id).get(:user_token)
user_id = users.where(:validation => cookie).get(:id)
primary_number = users.where(:validation => cookie).get(:primary_number)
#search for the right number
@sub_account_client = Twilio::REST::Client.new(user_key, user_token)
@subaccount = @sub_account_client.account
@numbers = @subaccount.available_phone_numbers.get('GB').toll_free.list({})
#buy the number and set the voice/sms url aprameters
@subaccount.incoming_phone_numbers.create(:phone_number => @numbers[0].phone_number, :voice_url => 'http://6c93ce61.ngrok.com/hello', :voice_method => 'GET', :sms_url => 'http://6c93ce61.ngrok.com/receive_sms', :sms_method => 'GET')
phone_number = @numbers[0].phone_number
#[HERE IS THE PROBLEM]sid = @numbers[0].Sid
numbers.insert(:user_id => user_id, :number => phone_number, :sid => sid, :inbound_route => primary_number, :send_to_voicemail => 'false', :show_caller_id => 'false')
return "You just bought: " + phone_number
這一切工作正常,但34字符的電話號碼SID不是無論是@numbers[0].Sid
也不@numbers [0] .phone_number_sid也不@numbers[0].number_sid
所以有返回2問題:
1)特別是如何訪問Sid號碼? 2)如何查看購買號碼後返回的所有對象?
感謝您一如既往的幫助......
乾杯菲爾。感謝上帝。這很令人困惑,因爲列出了「資源屬性」,在相關的api頁面上,例如Sid,但返回的對象是sid(帶有一個小的「s」)。或者更容易混淆的「FriendlyName」變成「friendly_name」;所以這是一個可憐的傢伙。這就解釋了我的問題的第二部分:一般來說,我怎樣才能看到所有返回的對象?有任何想法嗎? – user1903663 2014-11-03 08:14:01
是的,你是對的,Ruby庫並沒有遵循核心文檔。這是因爲它更像Ruby開發人員所期望的那樣,因爲我們傾向於使用較低的下劃線方法名稱。所以,你可以推斷,如果文檔說'FriendlyName'將會有'friendly_name'屬性。爲了查看Twilio對象的屬性,可以嘗試記錄'object.inspect'的結果,儘管我不確定它是否會顯示所有內容。儘管你可以相信文檔和轉換方法。 – philnash 2014-11-03 08:42:10
歡呼菲爾,毫無疑問,我們將再次做生意! – user1903663 2014-11-04 08:04:21