从Twilio获取电话号码的价格

时间:2017-11-14 12:05:20

标签: c# .net twilio twilio-api

我想在Twilio中获取电话号码的价格。我有这个来获取电话号码

var localAvailableNumbers = Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry.LocalResource.Read("US");

这是为了得到价格

var prices = Twilio.Rest.Pricing.V1.PhoneNumber.CountryResource.Fetch("US");

但我看不出有任何方法可以将每个电话号码映射到价格?

这是电话号码请求的响应示例

{
  "uri": "\/2010-04-01\/Accounts\/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\/AvailablePhoneNumbers\/US\/Local.json?AreaCode=510",
  "available_phone_numbers": [
    {
      "friendly_name": "(510) 564-7903",
      "phone_number": "+15105647903",
      "lata": "722",
      "rate_center": "OKLD TRNID",
      "latitude": "37.780000",
      "longitude": "-122.380000",
      "region": "CA",
      "postal_code": "94703",
      "iso_country": "US",
      "capabilities":{
        "voice": true,
        "SMS": true,
        "MMS": false
      },
      "beta": false
    }
  ]
}

它是否告诉我这是本地的,移动的,免费的等等。

2 个答案:

答案 0 :(得分:1)

电话号码按地点和类型定价,因此[类型] [国家]中的所有电话号码都是相同的价格。

在上面的代码中,您正在查询定价API的美国电话号码价格,因此您将获得两条PhoneNumberPrice记录,告诉您本地和免费电话号码的价格,每个号码都有一个NumberType属性告诉您价格适用的数字类型。如果您对英国等其他国家/地区提出相同的查询,则可能会获得本地,移动,国内和免费价格。

var country = Twilio.Rest.Pricing.V1.PhoneNumber.CountryResource.Fetch("US");
var prices = country.PhoneNumberPrices;
foreach(var price in prices) 
{
    Console.Writeline(price.NumberType.ToString());
}

现在,当您知道国家/地区和类型的价格时,您可以查询其中一种类型的可用电话号码。在您上面的代码中,您要求美国本地电话号码,每个月都是1美元。

希望有所帮助。

答案 1 :(得分:0)

我发现了问题。对于不同的电话号码类型,我需要进行不同的查询。

// Local numbers
var numbers = LocalResource.Read("US");

// Mobile numbers
var numbers = MobileResource.Read("US");