Sign inGet Started

Sprawdzanie numeru telefonu

Jedno wywołanie odpowiada, czym jest numer. Wszystko tutaj wymaga klucza API z uprawnieniem lookup.

Wykonaj podstawowe sprawdzanie

Wyślij sam numer. Podstawowe sprawdzanie jest zawsze rozliczane jednorazowo i zawsze zwraca kraj, sieć obsługującą, sieć wydającą oraz ogólny typ linii.
const answer = await bird.lookup.phoneNumber({
  phone_number: "+31612345678",
  type: ["classification", "score"],
});
console.log(answer.country_code, answer.line_type);
// Only a block whose status is ok carries a value, and only that one is billed.
if (answer.score?.status === "ok") console.log(answer.score.value);

Jak zapisać numer

Wyślij kod kraju, a potem numer krajowy. Początkowy + jest opcjonalny i 00 działa w jego miejsce, więc +31612345678, 31612345678 i 0031612345678 to ten sam numer.
Numer zapisany w formacie krajowym, bez kodu kraju, jest odrzucany zamiast zgadywany. 0612345678 zwraca E22000, ponieważ dodanie kodu kraju wskazałoby prawdziwy numer gdzieś indziej i zostałbyś obciążony za jego sprawdzenie.

Co zwraca bazowe sprawdzenie

country_code to kraj numeru, nieobecny, gdy numer nie należy do jednego kraju, jak w przypadku zakresu niegeograficznego.
network_info to sieć aktualnie obsługująca numer, a original_network_info to sieć, która przydzieliła jego zakres. Te dwie różnią się, gdy numer został przeniesiony, i wtedy flags zawiera ported.
line_type określa rodzaj linii numeru: mobile, fixed_line, voip, toll_free, premium_rate, satellite, pager, payphone, m2m, service, other lub unknown. unknown oznacza, że platforma operatora nie posiada klasyfikacji dla tego zakresu; other oznacza, że posiada klasyfikację bez odpowiednika tutaj. Aby uzyskać przydzieloną usługę z większą dokładnością, zażądaj właściwości classification. Odpowiada ona z innego źródła z szerszym słownikiem i jest raportowana oddzielnie, więc zawsze odróżnisz jedną od drugiej.

Dodaj właściwości

Wymień żądane właściwości w type. Każda jest rozliczana osobno i tylko po dostarczeniu.
WłaściwośćCo zwraca
classificationDokładna przydzielona usługa zakresu: stawka premium, satelita, M2M, automat telefoniczny.
portingKiedy numer ostatnio zmienił sieć i pełna historia przeniesień.
presenceCzy numer jest aktywny w sieci.
roamingCzy numer jest w roamingu i w jakiej sieci.
sim_swapKiedy ostatnio zmieniono kartę SIM.
scoreOcena wiarygodności od 0 do 100.
classification, porting i score odczytują zapisane dane i odpowiadają szybko. presence, roaming i sim_swap odpytują sieć na żywo, więc są wolniejsze, a ich pokrycie zależy od operatora. Spodziewaj się unavailable lub inconclusive dla nich częściej niż dla tych opartych na zapisanych danych.
Dwie właściwości odpowiadają na pytania, które bazowe sprawdzenie już porusza, ale z wyższą rozdzielczością. porting podaje datę i pełną historię, podczas gdy flaga ported bazowego sprawdzenia mówi jedynie, czy przeniesienie kiedykolwiek miało miejsce. classification rozwiązuje line_type do dokładnej przydzielonej usługi.

Odczytaj status przed wartością

Każdy blok właściwości zawiera status, a tylko ok niesie wartość.
Przykład kodu
{
  "phone_number": "+441904123456",
  "country_code": "GB",
  "line_type": "service",
  "classification": {
    "status": "ok",
    "value": "premium_rate"
  },
  "score": {
    "status": "unavailable"
  }
}
W tej odpowiedzi zostałeś obciążony za bazowe sprawdzenie i za classification. Nie zostałeś obciążony za score.
Odczytaj status jako pierwsze i traktuj każdą wartość inną niż ok jako "not answered". To otwarty słownik, więc nierozpoznana wartość to przyszły status, nie błąd.
Dwa bloki zwracają zakres zamiast dokładnej wartości, gdy sieć jej nie udostępnia. sim_swap zwraca min_days i max_days zamiast last_swapped_at, gdy znany jest tylko przedział czasowy. porting ustawia last_ported_at_is_approximate, gdy rejestr odnotowuje okres przeniesienia, ale nie konkretny dzień.
Jedno pole wygląda jak wynik negatywny, ale jest ustaleniem pozytywnym: porting.ported ustawione na false oznacza, że rejestr został odpytany i nie zawiera przeniesienia dla tego numeru, a nie że niczego nie dało się sprawdzić. Właśnie do tego służy status.

Spróbuj ponownie bez podwójnej opłaty

Sprawdzenie jest płatne, więc ponowione żądanie nie może kupić drugiej odpowiedzi. Wyślij Idempotency-Key, a powtórzenie tego samego żądania odtworzy zapisaną odpowiedź zamiast uruchamiać nowe sprawdzenie. Zobacz Idempotentność.
Forma GET tej operacji, która umieszcza numer w URL-u, nie może zawierać klucza idempotentności. Używaj formy POST do wszystkiego, co jest zautomatyzowane.

Błędy

KodCo się stało
E22000Numer nie jest prawidłowym numerem telefonu w formacie międzynarodowym. Nic nie zostało naliczone.
E22001Portfel organizacji nie pokrywa kosztów sprawdzenia. Doładuj go i spróbuj ponownie. Nic nie zostało naliczone.
E22002Sprawdzenie jest tymczasowo niedostępne. Spróbuj ponownie z wycofywaniem. Nic nie zostało naliczone.
Niepowodzenie właściwości nie jest błędem. Wraca jako status w jej bloku, a bazowe sprawdzenie jest dostarczane obok.

Następne kroki

Powiązane zasoby

Przejdź do dokumentacji, przewodników i przykładów dotyczących tego tematu.