აირჩიეთ ინდივიდუალური პრეფიქსი
გამოიყენეთ ქვეყნებისა და დაფარვის არეალების მოსაძიებელი გამოძახებები, შემდეგ კი — getprefixes დაჯგუფების გარეშე. დააკოპირეთ არჩეული პრეფიქსის uuid. თუ returns_numbers არის 0, ამ პრეფიქსისთვის ნომერი შეკვეთისას ენიჭება; გამოიყენეთ პასუხში მიღებული next_function და ნუ მოითხოვთ ინდივიდუალური ნომრების სიას.
დაათვალიერეთ შეზღუდული ზომის ნაკრები
ჩვეულებრივი ძიებისთვის გამოიყენეთ compact=1 და ნაკრების სასურველი ზომა მიუთითეთ როგორც მისამართის გზაში, ისე quantity მოთხოვნის პარამეტრში, როგორც ქვემოთ არის ნაჩვენები. გვერდის ან კურსორის პარამეტრი არ არსებობს. კომპაქტური შედეგი შერჩევითი ნაკრებია; მოთხოვნის გამეორება არ იძლევა გარანტიას, რომ შემდეგი გვერდის ნომრები წინა შედეგებს არ დაემთხვევა. ცარიელი ან მცირე შედეგი არ მიიჩნიოთ ხელმისაწვდომი ნომრების საერთო რაოდენობის მაჩვენებლად.
იპოვეთ ადვილად დასამახსოვრებელი ციფრული კომბინაცია
მიუთითეთ number_filter_mode=contains ან ends_with შემდეგ პარამეტრთან ერთად: number_filter_value. მნიშვნელობა უნდა შეიცავდეს 1–15 ციფრს. ფილტრის გამოყენებამდე ძიებამ შეიძლება კანდიდატების შეზღუდული ნაკრებები მოიტანოს, ამიტომ სხვა შესაბამისი ხელმისაწვდომი ნომრები შეიძლება გამორჩეს. თუ საჭირო ძიების შესასრულებლად შესაბამისი მხარდაჭერის მქონე წყარო გჭირდებათ, MultiTEL-ისგან მიიღეთ pid სელექტორი და გამოიყენეთ filter_required=1; თუ წყარო არჩეული არ არის ან არჩევანი მხარდაჭერილი არ არის, API შეცდომას აბრუნებს.
გაეცანით არჩეულ ნომერს
გაეცანით შემდეგ მონაცემებს: number, info.uuid, არჩეული price[].uuid, ხელმისაწვდომი ფუნქციების სახელები და რეგისტრაციის მოთხოვნები — ყველა მათგანი ერთი და იმავე შედეგიდან აიღეთ. price მასივი შეიძლება რამდენიმე გეგმას გთავაზობდეთ არხების განსხვავებული რაოდენობითა და ტარიფებით. ფულადი მნიშვნელობების ველები და რაოდენობები შეიძლება სტრიქონების სახით იყოს წარმოდგენილი. არასავალდებულო მეტამონაცემები, მათ შორის info.state, წყაროების მიხედვით განსხვავდება; ნუ მოითხოვთ შტატის მონაცემის ერთ უნივერსალურ სტრუქტურას და ნუ გამოიტანთ დასკვნებს ფასების შესახებ იდენტიფიკატორიდან.
ნაკადური გადაცემის გარეშე დამუშავებისას კანდიდატების დუბლიკატები იშლება და წყაროებს შორის განაწილება ხდება, შემდეგ კი არჩეული ნაკრები პირველი გეგმის ყოველთვიური ფასის მიხედვით ლაგდება. დამუშავების სხვა გზებმა შეიძლება ნაკადური გადაცემა უფრო ადრე დაიწყოს, ამიტომ საერთო დალაგების ან დუბლიკატების მოცილების გარანტია ყველა მოთხოვნაზე არ ვრცელდება. დალაგება ასევე არ ადასტურებს, რომ დაბრუნებული შერჩევითი ნაკრები მთელ კატალოგში ყველაზე იაფ ნომერს შეიცავს.
შეკვეთა ცალკე გააკეთეთ და შედეგი დაადასტურეთ
ძიება არაფერს ყიდულობს და არაფერს ჯავშნის. შეინახეთ პასუხში მიღებული ნომრისა და გეგმის იდენტიფიკატორები იმავე ანგარიშით შეკვეთის გასაკეთებლად. შეკვეთის გაგზავნამდე გაეცანით რეალურ გეგმას, მოთხოვნებსა და გადასახდელ თანხებს. რეგისტრაციის მოთხოვნებმა შეიძლება აქტივაცია შეაფერხოს; ძიების შედეგი აქტივაციის ფიქსირებულ ვადას არ განსაზღვრავს.
მოთხოვნა
გამოიყენეთ ჩართული MultiTEL API ანგარიში: პაროლიანი ანგარიშისთვის — HTTP Basic ავტორიზაციის მონაცემები, ხოლო ტოკენიანი ანგარიშისთვის — Authorization: Bearer. მოქმედებს ანგარიშის წვდომის უფლებები და მისი IP შეზღუდვები. იხილეთ ავთენტიფიკაციის საერთო სახელმძღვანელო.
მისამართის გზის პარამეტრები და URL-ის მოთხოვნის პარამეტრები. საჯარო ძიების პროცესისთვის გამოიყენეთ GET. დამმუშავებელი ასევე იღებს ფორმის/მოთხოვნის გარკვეულ მნიშვნელობებს, თუმცა ეს არ არის ძიების API, რომელიც JSON სხეულს იღებს.
curl --fail-with-body --get \
--user "${MULTITEL_API_USERNAME}:${MULTITEL_API_PASSWORD}" \
--data-urlencode "compact=1" \
--data-urlencode "quantity=10" \
"https://api.multitel.net/v3/getnumbers/${PREFIX_ID}/10"| სახელი | ტიპი | სავალდებულო | აღწერა |
|---|---|---|---|
prefix_id | string | დიახ | ინდივიდუალური პრეფიქსის იდენტიფიკატორი, რომელიც დაუჯგუფებელ getprefixes პასუხში ბრუნდება. დააკოპირეთ ზუსტად; მის ნაცვლად ნუ მიუთითებთ ქვეყნის, დაფარვის არეალის, დაჯგუფებული პრეფიქსის ან სატარიფო გეგმის იდენტიფიკატორს. |
quantity | integer | არა | მოსატანი ჩანაწერების მიზნობრივი რაოდენობა; ნაგულისხმევია 1. არადადებითი მნიშვნელობები იცვლება 1-ით. მხოლოდ მისამართის გზაში მითითებული quantity საერთო შედეგის სანდო ზღვარი არ არის: კონკრეტულ წყაროზე მიუბმელმა ძიებამ, რომელსაც მოთხოვნაში quantity პარამეტრი არ აქვს, შეიძლება გააფართოოს მონაცემების მოტანა და სხვა დამუშავებამდე თითოეული წყაროდან 50-მდე ჩანაწერი დააბრუნოს. ჩვეულებრივი, შეზღუდული მოცულობით დათვალიერებისთვის გამოიყენეთ compact=1 და სასურველი რაოდენობა მოთხოვნის პარამეტრშიც გაიმეორეთ, როგორც მაგალითშია. |
| სახელი | ტიპი | სავალდებულო | აღწერა |
|---|---|---|---|
quantity | integer | არა | საბოლოო ნაკრების მოთხოვნილი ზომა. არაცარიელი მნიშვნელობები გარდაიქმნება მთელ რიცხვებად, მინიმალური მნიშვნელობით 1. კონკრეტულ წყაროზე მიუბმელი, ნაკადური გადაცემის გარეშე დამუშავებისას ეს საბოლოო განაწილებას ზღუდავს. ეს სერვისს არ ავალდებულებს, ამდენი ნომერი იპოვოს. კონკრეტულ წყაროზე მიბმულმა კომპაქტურმა ძიებამ შეიძლება ამ ზღვრის გამოყენების ნაცვლად წყაროს კომპაქტური ნაკრები დააბრუნოს. |
compact | string | არა | უფრო მცირე, ნაკადური გადაცემის გარეშე პასუხისთვის გამოიყენეთ 1, true ან on; საბოლოო განაწილებამდე თითოეული წყაროდან მიიღება არაუმეტეს 10 ჩანაწერისა. შედეგები ამჟამად მოტანილი ხელმისაწვდომი ნომრების შერჩევითი ნაკრებია და არა სრული კატალოგი. |
number_filter_mode | string | არა | ციფრული კომბინაციის ძიების არასავალდებულო რეჟიმი: contains ან ends_with. ასევე მიუთითეთ number_filter_value. შედეგები მოწმდება ტელეფონის ნომრის ნორმალიზებული ციფრების მიხედვით; ძიება ყველა ხელმისაწვდომ ნომერს არ გადარჩევს ყველა შესაძლო დამთხვევის გარანტირებულად საპოვნელად. |
number_filter_value | string | არა | 1-დან 15-მდე ციფრი, გამოტოვებების, + სიმბოლოსა და პუნქტუაციის ნიშნების გარეშე. საწყის ნულებს მნიშვნელობა აქვს; გაგზავნეთ ტექსტის სახით. |
filter_required | string | არა | გაფართოებული პარამეტრი: 1, true, yes ან on მოითხოვს ხელმისაწვდომი ნომრების აშკარად არჩეულ წყაროს, რომელიც ფილტრის რეჟიმს მხარს უჭერს. წინააღმდეგ შემთხვევაში API აბრუნებს status.code მნიშვნელობას 422. კატალოგის ჩვეულებრივი დათვალიერებისთვის ეს საჭირო არ არის. |
pid | string | არა | MultiTEL-ის მიერ მოწოდებული ხელმისაწვდომი ნომრების გაფართოებული სელექტორი. მიიღება რიცხვითი და მხარდაჭერილი 32-სიმბოლოიანი თექვსმეტობითი ფორმები; ამოუცნობი მნიშვნელობები შეტყობინების გარეშე უგულებელყოფილია. ჩვეულებრივი გამოყენებისას გამოტოვეთ. ნუ გამოიყვანთ სელექტორებს ფასის იდენტიფიკატორებიდან და ნუ ჩათვლით, რომ ნებისმიერი სელექტორი ხელმისაწვდომ ნომრებს მხოლოდ შესაბამისი წყაროთი ზღუდავს. |
პასუხი
ერთი JSON ობიექტი, რომელიც შეიცავს status და response ველებს. წარმატებისას status.code არის 200, ხოლო response — ნომრების ჩანაწერების მასივი. status.results დაბრუნებული მასივის ელემენტების რაოდენობაა; status.msg შეიძლება იყოს Results: N, ან ნაკადური პასუხისთვის — OK. თუ compact=1 მითითებული არ არის, ზოგი ძიება response მასივს ეტაპობრივად წერს და ბოლოს status ველს ამატებს, ამიტომ დაელოდეთ სრულ JSON სხეულს. ეს არ არის ახალი ხაზებით გამიჯნული JSON. შეამოწმეთ status.code მაშინაც, როცა HTTP გადაცემა წარმატებულია. ქვემოთ ნაჩვენებია ტიპური ველები; წყაროსთვის სპეციფიკური მეტამონაცემები და არასავალდებულო ველები განსხვავდება. თითოეული იდენტიფიკატორი გაუმჭვირვალე მნიშვნელობად მიიჩნიეთ და ნომერი მისთვის არჩეულ price[].uuid მნიშვნელობასთან ერთად შეინახეთ.
პასუხის სტრუქტურის საილუსტრაციო მაგალითი; ეს არ არის ანგარიშის რეალური მონაცემები ან მიმდინარე ფასის შეთავაზება.
{
"status": {
"code": 200,
"msg": "Results: 1",
"results": 1
},
"response": [
{
"number": "12125550123",
"info": {
"uuid": "NUMBER_ID_FROM_RESPONSE",
"prefix_uuid": "PREFIX_ID_FROM_RESPONSE",
"area_uuid": "AREA_ID_FROM_RESPONSE",
"country_uuid": "COUNTRY_ID_FROM_RESPONSE",
"country_iso": "US",
"prefix": "+1212",
"name": "Example area",
"state": "US"
},
"price": [
{
"uuid": "PRICE_PLAN_ID_FROM_RESPONSE",
"per_minute": "0.01",
"per_sms": "0",
"per_mms": "0",
"free_minutes": "0",
"setup_price": "1.00",
"monthly_price": "2.00",
"yearly_price": "0",
"channels": "2"
}
],
"contract": {
"term": "1 month",
"renewal": "monthly",
"notice": "none"
},
"restrictions": {
"needs_registration": "0",
"restrictions": ""
},
"features": [
"voice"
],
"overflow": "0"
}
]
}შეცდომები
- 401: ავთენტიფიკაცია ვერ შესრულდა. არასწორი ან გამოტოვებული ავტორიზაციის მონაცემებისა და API ანგარიშზე წვდომის უარყოფის შემთხვევაში ძიების შედეგები არ ბრუნდება.
- 404: Invalid prefix ID, Invalid country, Invalid area ან No numbers found. წაიკითხეთ status.msg; შეცდომის პასუხი ნომრების მასივი არ არის.
- 400: NUMBER_FILTER_INVALID ველში response.code: არასწორი რეჟიმი, მნიშვნელობა, რომელიც 1–15 ციფრისგან არ შედგება, ან filter_required, როცა რეჟიმი და მნიშვნელობა ორივე მითითებული არ არის.
- 422: NUMBER_FILTER_UNSUPPORTED ველში response.code: ან პრეფიქსისთვის ნომერი შეკვეთისას ენიჭება (reason=order_only_prefix და next_function შეკვეთის მარშრუტს მიუთითებს), ან აშკარად არჩეული წყარო საჭირო ფილტრს ვერ უჭერს მხარს.
ხელმისაწვდომობა და თანმხლები ეფექტები
- ეს დამმუშავებელი ძიებას ასრულებს და ფასის შეთავაზებებს ამზადებს; ის ნომრის შეკვეთას არ აგზავნის და ნომრის შესაძენ თანხას არ ჩამოჭრის. მას შეუძლია კატალოგის ქეშების განახლება, ქეშიდან ხელმისაწვდომი ნომრების მოძველებული ჩანაწერების წაშლა, ანგარიშისთვის განკუთვნილი სატარიფო გეგმების შენახვა და ძიების ჟურნალებში ჩანაწერების გაკეთება.
- ხელმისაწვდომობა კონკრეტული მომენტის მდგომარეობას ასახავს და ჯავშანს არ წარმოადგენს. შემდგომი შეკვეთა შეიძლება ვერ შესრულდეს ან განსხვავებული ხელმისაწვდომობა დააბრუნოს. შესყიდვის ხელახლა ცდამდე გადაამოწმეთ შეკვეთის შედეგი და შეუჯერეთ თქვენს ჩანაწერებს.
- ფასები კონკრეტულ ანგარიშზეა დამოკიდებული. არჩეული გეგმის იდენტიფიკატორი იმავე ანგარიშისთვის შეინახეთ და შეკვეთის პირობებსა და გადასახდელ თანხებს ცალკე გაეცანით; მხოლოდ ეს ენდპოინტი არ ადასტურებს, რომ ფასი მოგვიანებით შეკვეთამდე ძალაში დარჩება.
- მაგალითში მოცემული ნომერი და ფასები პასუხის სტრუქტურის გამოგონილი ილუსტრაციებია და არა რეალური ფასის შეთავაზება. შესაძლებლობები, არხების რაოდენობა, ხელშეკრულების ვადა და რეგისტრაციის ინფორმაცია რეალურად არჩეული შედეგიდან უნდა წაიკითხოთ.
- რეგისტრაციის ზოგი აღწერა ფორმატირებულ ტექსტს ან ბმულებს შეიცავს. საკუთარ აპლიკაციაში ჩვენებისას დაბრუნებული სტრიქონები არასანდო მონაცემებად მიიჩნიეთ.
- მობილური ნომრების ხელმისაწვდომობა და შესაბამისი ნიშნულები დამოკიდებულია იმაზე, აკმაყოფილებს თუ არა ანგარიში შესაბამის პირობებს, და ხელმისაწვდომ ნომრებზე. მხოლოდ კატალოგის პრეფიქსი ან is_mobile ნიშნული კონკრეტული ნომრის მობილურ შესაძლებლობებს არ ადასტურებს.