有没有办法检索可用电话号码的类型或价格?

时间:2016-11-12 13:11:25

标签: twilio twilio-api

让我们说我只有数字和isoCountry例如:

    String number = +43720116398;
    String isoCountry = "AT";

我在购买前试图确定价格或类型。 我想知道这个号码是LOCAL,MOBILE还是TOLL_FREE。

遗憾的是Lookups客户端在这种情况下不起作用:

  public static void main(String[] args) throws TwilioRestException {
    LookupsClient client = new LookupsClient(ACCOUNT_SID, AUTH_TOKEN);
    PhoneNumber number = client.getPhoneNumber(number , true);
    System.out.println(number.getType());
  }

它返回不同类型的类型或空值。 如果我能得到进入电话号码的类型/价格也会让我满意。 有什么办法吗?

1 个答案:

答案 0 :(得分:1)

在我的情况下,我知道该号码是LOCAL或MOBILE所以我只是检查这个具有LOCAL类型的号码是否存在,如果不是它的MOBILE,你可以轻松添加检查,如果你想要TOLL_FREE或MOBILE。 如果有人在几天内提供更清洁的方式,我很乐意接受他的回答,如果不是我会接受我的。

可运行的例子:

public class Main {
    private final static String MOBILE = "MOBILE";
    private final static String LOCAL = "LOCAL";
    private static TwilioRestClient twilioRestClient = new TwilioRestClient("Key", "key");

    public static void main(String[] args) {
        String number = "+43720116398";
        String isoCountry = "AT";
        getMsisdnType(number, isoCountry);
    }


    public static String getMsisdnType(String msisdn, String isoCountry) {
        Map<String, String> params = new HashMap<>();
        params.put("Contains", msisdn);
        Optional<AvailablePhoneNumber> number = twilioRestClient.getAccount().getAvailablePhoneNumbers(params, isoCountry, LOCAL).getPageData().stream().findAny();
        if (number.isPresent()) return LOCAL;
        return MOBILE;
    }
}