2017-11-14 5 views
1

Ich versuche, den Preis einer Telefonnummer in Twilio zu bekommen. Ich habe dies die TelefonnummernPreis der Telefonnummer von Twilio

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

zu bekommen und diese Preise

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

Aber ich kann nicht jede mögliche Weise zu sehen bekommen jede der Telefonnummern zu einem Preis abzubilden?

Dies ist ein Beispiel für die Antwort von den Telefonnummern Anfrage

{ 
    "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 
    } 
    ] 
} 

Nirgendwo es mir nicht sagen, ob diese lokal, mobil, gebührenfreie usw.

Antwort

1

Telefonnummern werden nach Standort günstig und geben Sie ein, damit alle Telefonnummern in [Land] von [Typ] den gleichen Preis haben.

In Ihrem Code oben fragen Sie die Preis-API für US-Telefonnummer Preise, so dass Sie zwei PhoneNumberPrice Aufzeichnungen zurück, die Ihnen den Preis von lokalen und gebührenfreien Nummern, von denen jede eine NumberType Eigenschaft, die Ihnen sagt, sagen die Art der Nummer, für die der Preis gilt. Wenn Sie dieselbe Suchanfrage für ein anderes Land wie Großbritannien stellen, erhalten Sie möglicherweise lokale, mobile, nationale und gebührenfreie Preise.

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

Jetzt, wenn Sie den Preis für das Land und den Typ kennen, können Sie nach verfügbaren Telefonnummern eines dieser Typen abfragen. In Ihrem Code über Ihre Frage nach lokalen US-Telefonnummern, die alle $ 1/Monat sein werden.

Hoffe, dass hilft.

+0

Danke, ich denke, das Problem ist die Ergebnisse der ersten Abfrage nicht wirklich den Typ angeben. Woher weiß ich, dass sie lokal sind? Wenn ich diese Abfrage ausführen, was wird der Typ sein? var localAvailableNumbers = Twilio.Rest.Api.V2010.Account.AvailablePhoneNumberCountry.LocalResource.Read ("US", voiceEnabled: true, smsEnabled: sms true); – Craig

+0

Meine Antwort wurde aktualisiert, um Code hinzuzufügen. Der Aufruf von Fetch gibt eine 'CountryResource' zurück, die eine Eigenschaft namens' PhoneNumberPrices' vom Typ 'List ' haben sollte. Jedes PhoneNumberPrice-Objekt verfügt über eine Eigenschaft namens "NumberType", die angibt, für welche Art von Telefonnummer der Preis gilt. –

+0

Danke, aber eine PhoneNumber hat keine NumberType-Eigenschaft, daher kann ich den Preis nicht der Nummer zuordnen. – Craig

0

Ich habe das Problem gefunden. Für die verschiedenen Telefonnummern muss ich verschiedene Anfragen stellen.

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

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