Как получить доступ к контактам телефона python
Перейти к содержимому

Как получить доступ к контактам телефона python

  • автор:

Аутентификация по номеру телефона в Telegram

Требуется помощь в реализации авторизации в telegramm bote по номеру телефона. пример: я заношу номера телефонов в в базу ручками и когда пользователь подключается к боту будет происходить сравнение номера с базой и только после этого пускать в бота. есть пример c бд vedis и она не сложна в реализации. https://groosha.gitbooks.io/telegram-bot-lessons/content/chapter11.html я не могу понять как это реализовать только под номер телефона. бот будет использоваться в компании как база знаний. есть небольшая часть кода.

# Обрабатывает команду /start @bot.message_handler(commands=['start']) def commands_start(message): bot.send_message(message.chat.id, "Приветствую Вас в базе знаний компании . нажмите /help чтобы продолжить") @bot.message_handler(commands=['support']) def commands_support(message): bot.send_message(message.chat.id, "Телефоны") # страница справки @bot.message_handler(commands=['help']) def command_help(m): cid = m.chat.id help_text = "Доступны следующие команды: \n" for key in commands: help_text += "/" + key + ": " help_text += commands[key] + "\n" bot.send_message(cid, help_text) # обработчик по умолчанию для любого другого текста @bot.message_handler(func=lambda message: True, content_types=['text']) def command_default(m): # это стандартный ответ на обычное сообщение bot.send_message(m.chat.id, "Я не понимаю \"" + m.text + "\"\nМожет быть, попробуйте страницу справки на /help") 

подскажите как это все реализовать в эту часть кода. буду очень признателен
Отслеживать
8,552 4 4 золотых знака 29 29 серебряных знаков 53 53 бронзовых знака
задан 8 фев 2019 в 14:51
Александр Москалев Александр Москалев
1 1 1 серебряный знак 2 2 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

  1. Делаешь хендлер контактов: content_types=[‘contact’]
  2. В сообщении будет ключ contact . Делаешь проверку: if msg.contact.user_id == msg.from_user.id
  3. Если человек отправил свой номер, то проверка пройдет успешно, если нет, то это номер другого человека
  4. Потом в делаешь проверку на наличие msg.contact.phone_number в базе данных

Надеюсь помог. Так же можешь заменить func=lambda message: True, content_types=[‘text’] на content_types=[‘text’] . Разницы нет

Отслеживать
ответ дан 8 фев 2019 в 16:55
Savvasenok Savvasenok
11 3 3 бронзовых знака

  • telegram-bot
  • python-3.6
  • vedis
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.11.15.1019

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Основы Contacts API в Android

Совсем недавно мне нужно было сделать приложение в котором была необходима поддержка функционала работы с пользовательскими контактами на базовом уровне и, как наверное любой начинающий Android разработчик, я прибывал в небольшом ступоре после поверхностного изучения нового Contacts API. Во время работы я нашел совсем не много информации на эту тему (кроме самой документации конечно), а на русском языке, как мне показалось, она и вовсе отсутствует. Поэтому я и решил написать эту статью и поделиться своим опытом с другими. В ней я постараюсь охватить только основы работы с контактами в Android, не затрагивая более глубокие вопросы и вопросы синхронизации, которые по моему заслуживают отдельной статьи.

Введение

Начиная с версии 5 API Android SDK интерфейс работы с контактами изменился, а основной контент провайдер Contacts и все его составляющие получили черную метку @Deprecated. Теперь за работу с контактами отвечает провайдер ContactsContract. Эти изменения связаны с изменением структуры хранения контактов, более адаптированной для Android устройств, которым требуется хранить контакты из множества разных источников и предоставлять их пользователю как единую сущность. Ведь сегодня, определенный контакт на нашем мобильном устройстве это не только имя и номер телефона, мы можем захотеть сохранить eMail, Im, Twitter, Facebook аккаунт определенного человека, и при этом, мы не хотим чтобы у нас нас появилось миллион непонятных записей. Поэтому новый Contacts API позволяет Android агрегировать похожие контакты и представлять их пользователю в одной записи, а также связывать контакт с разного рода данными.

Структура данных

На устройстве основная информация о контактах хранится в трех таблицах, на деле их там конечно больше, но мы рассмотрим основные три: contacts, raw_contacts и data. Чтобы было более наглядно я набросал простую схему в Dia.

В таблице contacts хранятся агрегированные контакты, каждая запись в этой таблице представляет собой пользовательский контакт (единую сущность) – объединение одного или нескольких сырых (необработанных) контактов из таблицы raw_contacts. Как видно на схеме, связь между этими таблицами один ко многим (1-N). Одна запись в таблице raw_contacts представляет собой так называемый сырой контакт. Сырой контакт, на языке Android, означает какой-то конкретный набор данных для определенного контакта. Но сами основные данные в этой таблице не хранятся, они хранятся в таблице data, и связь между raw_contacts и data также один ко многим. В таблице data хранятся непосредственно данные. Причем каждая строка этой таблицы это набор данных определенного типа для контакта. Какого именно типа данные хранятся в строке определяется столбцом mimetype_id, в котором содержится id типов данных определенных в таблице mimetype(например vnd.android.cursor.item/name, vnd.android.cursor.item/photo). Теперь разберемся во всем по подробней и с примерами.

Работаем с контактами

Хорошо, допустим мы хотим добавить контакт (Robert Smith, моб.тел. 11-22-33), как нам это сделать? В таблицу contacts мы сами, явно, не можем добавить контакт, так как система сама формирует эту таблицу агрегируя похожие raw_contacts. Идентичность контактов система определяет в основном по имени (одинаковые имена, фамилии и т.п.), но и по другим критериям, каким именно и как ими управлять можно посмотреть в документации. То есть, если мы добавим raw_contact нашего Роберта (Robert Smith) и свяжем его с данными типа vnd.cursor.android.item/phone, а потом у нас появится “похожий”, для системы, Robert Smith связанный с данными типа vnd.cursor.android.item/email и еще один с данными типа vnd.cursor.android.item/photo, то у нас в контактах будет один Robert Smith с фотографией, мобильным и email’ом.

Теперь попробуем переложить это на код. За таблицы и их поля отвечает, как я уже говорил, класс ContactsContract и его внутренние классы и интерфейсы. Например интерфейсом к таблице raw_contacts является класс ContactsContract.RawContacts, а за таблицу data класс ContactsContract.Data. Будьте внимательны когда изучаете их константы – интерфейсы к столбцам – обращайте внимание на метки read/write и read only.

Из написанного выше следует, что для начала, мы должны добавить сырой контакт, а потом связывать его с данными. Добавить пустой контакт можно так:

import android.provider.ContactsContract; Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, new ContentValues()); 

В контактах у вас должен появиться пустой (Unknown) контакт, ни с чем не связанный. Добавим ему имя. Чтобы это сделать, мы должны связать наш новый контакт с новыми данными используя его id, который можно достать из прошлого запроса. Основные интерфейсы к полям таблицы данных содержаться в классе-контейнере ContactsContract.CommonDataKinds и его внутренних классах и интерфейсах. Например, сейчас нам понадобиться
класс ContactsContract.CommonDataKinds.StrucruredName содержащий нужные нам константы для добавления имени, а также константу MIME типа, которой мы пометим наше поле в таблице данных.

/* Получаем id добавленного контакта */ long rawContactId = ContentUris.parseId(rawContactUri); ContentValues values = new ContentValues(); /* Связываем наш аккаунт с данными */ values.put(Data.RAW_CONTACT_ID, rawContactId); /* Устанавливаем MIMETYPE для поля данных */ values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); /* Имя для нашего аккаунта */ values.put(StructuredName.DISPLAY_NAME, "Robert Smith"); getContentResolver().insert(Data.CONTENT_URI, values); 

Если мы добавим контакт таким образом, то в списке контактов у нас появиться Robert Smith. Теперь идем дальше, добавим нашему контакту еще и телефон. Для этого нам понадобиться класс ContactsContract.CommonDataKinds.Phone, который является интерфейсом к данным телефонного номера.

values.clear(); values.put(Data.RAW_CONTACT_ID, rawContactId); /* Тип данных – номер телефона */ values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); /* Номер телефона */ values.put(Phone.NUMBER, "11-22-33"); /* Тип – мобильный */ values.put(Phone.TYPE, Phone.TYPE_MOBILE); getContentResolver().insert(Data.CONTENT_URI, values); 

Теперь в контактах у нас есть Robert Smith которому можно позвонить. Но вот так добавлять контакт и данные к нему, в несколько запросов, дорого и накладно. Поэтому существует класс ContentProviderOperation, который позволяет построить запрос, который выполнит все наши операции за одну транзакцию. Именно им и рекомендуют пользоваться. Вот так можно добавить нашего Роберта используя ContentProviderOperation.

ArrayList op = new ArrayList(); /* Добавляем пустой контакт */ op.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI) .withValue(RawContacts.ACCOUNT_TYPE, null) .withValue(RawContacts.ACCOUNT_NAME, null) .build()); /* Добавляем данные имени */ op.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, 0) .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE) .withValue(StructuredName.DISPLAY_NAME, "Robert Smith") .build()); /* Добавляем данные телефона */ op.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) .withValueBackReference(Data.RAW_CONTACT_ID, 0) .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE) .withValue(Phone.NUMBER, "11-22-33") .withValue(Phone.TYPE, Phone.TYPE_MOBILE) .build()); try < getContentResolver().applyBatch(ContactsContract.AUTHORITY, op); >catch (Exception e)

Вот таким образом в Android можно добавлять контакты. Будьте осторожны используя ContentProviderOperation, так как слишком большой запрос может долго выполняться. Вообще все операции лучше производить в отдельном потоке, потому, что у пользователя, например, может быть слабый телефон и много контактов.

В остальном все другие операции выполняются обычным образом, используя те провайдеры, которые вам необходимы, с некоторыми оговорками. Например, удаление контакта из таблицы contacts удалит все raw_contacts с ним связанные и т.д.

Вот так можно попробовать найти нашего Роберта в контактах:

Cursor c = getContentResolver().query( Contacts.CONTENT_URI, new String[] , Contacts.DISPLAY_NAME + " = 'Robert Smith'", null, null); if(c.getCount() > 0) < /* Найдено */ >else < /* Не найдено */ >

На этом хотелось бы завершить статью, все же это были только основные сведения о Contacts API в Andoid. Я надеюсь мне удалось описать здесь основные принципы, а вся конкретика зависит от того, что вам необходимо сделать в процессе работы. Можно просто руководствоваться этими принципами и находить в официальной документации интерфейсы которые вам нужны для работы. Успехов!

5 Лучших Способов Взломать Чей-то Телефон, не Прикасаясь к Нему

Существует множество способов, с помощью которых можно взломать чей-то телефон, не прикасаясь к нему. Некоторые люди склонны считать, что шпионаж или взлом чьего-либо телефона может быть трудной задачей, а сама процедура может быть слишком сложной. Однако технология предложила нам несколько различных способов, с помощью которых это можно сделать.

С помощью правильного приложения или техники для взлома телефона вы сможете легко шпионить за действиями на чужом телефоне. В этой статье подробно описаны 5 различных способов, которые дадут вам четкое представление о том, как взломать чужой телефон, не прикасаясь к нему.

  • 1. Что такое приложения-шпионы для мобильных телефонов и как ими пользоваться
  • 2. Взлом мобильного телефона с помощью спам-сообщений
  • 3. Использование Midnight Raid: продвинутый вариант для профессионалов
  • 4. Взлом с помощью DIY IMSI Catcher или Stingray
  • 5. Нанять профессионального хакера

1. Что такое приложения-шпионы для мобильных телефонов и как ими пользоваться

Существует ряд приложений для шпионажа за мобильными телефонами, которые можно использовать для того, чтобы узнать, как взломать чей-то мобильный телефон, не прикасаясь к нему, и проверить действия пользователя целевого устройства. Эти приложения требуют, чтобы вы получили доступ к целевому устройству хотя бы один раз для установки.

После этого вы сможете удаленно отслеживать почти все действия на целевом устройстве. Все данные о нем будут загружены на веб-панель управления, к которой вы сможете легко получить доступ с любого устройства.

Какое приложение для шпионажа сотовых телефонов самое лучшее?

Лучшим приложением для слежки за мобильными телефонами из всех доступных является KidsGuard Pro. Это чрезвычайно эффективное приложение, которое синхронизирует данные целевого мобильного телефона в режиме реального времени и отображает их на интерактивной онлайн-панели. Это приложение многофункционально и очень просто в установке и использовании. С помощью этого приложения можно получить доступ ко всем фотографиям, видео, сообщениям, журналам вызовов, контактам и т.д.

Все действия в популярных социальных сетях, таких как Facebook, WhatsApp, Snapchat, Instagram и т.д., также можно отслеживать. Вам также будет доступно местоположение целевого устройства в реальном времени вместе с историей его местоположения. В общем, это самый простой способ, который вы можете выбрать.

kidsguard pro

Как взломать телефон удаленно с помощью KidsGuard Pro:

Вы можете воспользоваться приведенными ниже шагами, чтобы узнать, как шпионить за чужим телефоном, не прикасаясь к нему, с помощью KidsGuard Pro. Конечно, вначале вам нужно получить доступ к целевому устройству один раз, но после этого вам больше не придется прикасаться к нему. Весь процесс установки займет не более 5 минут даже у начинающего пользователя.

Шаг 1: Нажмите кнопку «Зарегистрироваться«, чтобы зарегистрировать учетную запись и выбрать тарифный план в соответствии с вашими потребностями.

скачать приложение

Шаг 2: Установите и настройте приложение, следуя подсказкам на экране, чтобы завершить процесс. Это займет всего несколько минут.

установить приложение помощник

Шаг 3: Теперь вернитесь на сайт KidsGuard Pro и войдите в свою учетную запись, чтобы получить доступ к онлайн панели. Выберите типы файлов, которые вы хотите проверить, в левом меню, не прикасаясь к телефону.

Панель управления приложениями

Этот метод взлома чужого телефона рекомендуется для простоты использования и эффективности.

2. Взлом мобильного телефона с помощью спам-сообщений

Вам интересно, может ли кто-то взломать мой телефон, не прикасаясь к нему? Взлом сотового телефона с помощью спам-сообщений осуществляется путем одурачивания владельца устройства и использования методов взлома его аккаунта Google для получения доступа к данным телефона.

Аккаунт Google используется практически всеми для различных целей, таких как синхронизация данных с облаком, вход в приложения социальных сетей и т.д. Зная данные учетной записи Google, привязанной к целевому мобильному телефону, можно получить доступ к данным на этом телефоне.

Если у вас нет пароля к аккаунту Google или вы его забыли, Google отправляет код безопасности на номер телефона, к которому он привязан. Этот код безопасности может быть получен вами через спам, который вы отправляете. Вы можете узнать, как взломать телефон, не прикасаясь к нему, выполнив следующие шаги.

Шаг 1: Перейдите на страницу входа в Google, введите номер телефона, который вы хотите взломать, и нажмите на кнопку «Забыли пароль», чтобы отправить проверочный код на целевое устройство.

забыл пароль

Шаг 2: Если вы можете физически получить доступ к телефону, вы сможете получить проверочный код, если нет, вам придется отправить на телефон спам-сообщение с сообщением, подобным приведенному ниже.

«Это сообщение от Google. В вашем аккаунте Google обнаружена несанкционированная активность. Пожалуйста, ответьте на это сообщение проверочным кодом Google, отправленным на ваш номер.«

Шаг 3: Если вам удалось обмануть пользователя целевого устройства, вы можете ввести присланный вам проверочный код, чтобы войти в аккаунт Google, связанный с телефоном, который вы хотите взломать.

Это позволит вам получить доступ к приложениям социальных сетей, электронной почте, местам, где они побывали, и местоположению на карте.

3. Использование Midnight Raid: продвинутый вариант для профессионалов

Одним из самых популярных методов, используемых хакерами для шпионажа за телефоном, является метод Midnight Raid. Чтобы узнать, как взломать мобильный телефон, не прикасаясь к нему, используя этот метод, вам понадобятся два телефона, ноутбук и беспроводная связь. Один из телефонов выступает в качестве GSM-модема для ноутбука, а другой — в качестве устройства, с которого вы будете получать информацию.

Причина, по которой этот метод называется Midnight Hack, заключается в том, что он осуществляется полностью ночью, когда пользователь целевого устройства спит, а его устройство остается без присмотра. Все, что вам нужно сделать, это отправить на целевое устройство в полночь простое сообщение с текстом «Вас взламывают». Такое простое сообщение вызовет Internet Explorer на целевом устройстве.

После этого на целевом устройстве будет запущено приложение для получения данных. В ответ вы получите SMS с уникальным идентификатором телефона, который является номером IMSI. С помощью такого приложения можно легко получить любую информацию с целевого устройства.

midenight raid attack

4. Взлом с помощью DIY IMSI Catcher или Stingray

Ловец IMSI, также известный иногда как Stingray, — это техническое средство, которое действует как вышка сотового телефона. Это заставляет все ближайшие местные телефоны устанавливать с ней связь. Такой метод позволяет получить уникальный IMSI-код SIM-карты, местоположение целевого устройства, а также доступ к ряду других возможностей наблюдения. Как правило, такую технологию используют только государственные органы или правоохранительные структуры. Использование такой технологии достаточно регламентировано и не может использоваться всеми.

Однако можно разработать такой инструмент самостоятельно, используя доступное программное обеспечение с открытым исходным кодом и аппаратное обеспечение, которое можно приобрести на Amazon. IMSI catchers можно использовать для взлома телефонов сети GSM, а также телефонов, работающих в сетях 3G и 4G.

imsi catcher

Вы можете не знать, что ваш смартфон постоянно пингует вышки сотовой связи. Частная информация, такая как местоположение вашего телефона, может быть потенциально передана любому, у кого есть рация. Именно эта идея используется при взломе телефона с помощью IMSI catcher.

Ключевым инструментом, используемым в такой технике, является программное обеспечение для определения радиоключей, также называемое RTL-SDR. Этот инструмент предназначен для прослушивания через сеть GSM. В принципе, для такого взлома требуется только RTL-SDR, который можно купить менее чем за двадцать долларов. С его помощью можно получить доступ к уникальному IMSI, который привязан к каждой отдельной SIM-карте телефона.

Единственное программное обеспечение, необходимое для такого взлома, — это крошечный скрипт на языке Python из [Oros42], который свободно доступен на GitHub. Если вы хотите взломать чей-то телефон, не прикасаясь к нему, используя этот способ, вам нужно быть очень технически подкованным и пойти на риск нарушения закона.

5. Нанять профессионального хакера

Если взлом телефона без прикосновения к нему кажется вам сложным процессом, вы можете нанять для этой цели профессионального хакера. Профессиональный хакер имеет многолетний опыт в этой области и работал над несколькими хакерскими проектами.

Единственным недостатком этого метода является то, что трудно найти надежного профессионального хакера. Кроме того, даже наняв его, вы не можете быть на 100% уверены, что он успешно справится с задачей взлома.

Нанять профессионального хакера

Часто задаваемые вопросы и заключение

Когда речь заходит об отслеживании мобильного телефона, не прикасаясь к нему, в голове может возникнуть множество сомнений. Здесь мы рассмотрим наиболее распространенные из них:

1. Может ли кто-то взломать мой телефон, не прикасаясь к нему?

Строго говоря, нет. Единственный способ взломать телефон — это получить к нему физический доступ и установить программное обеспечение для взлома телефона. После этого они могут удаленно проверить все действия, которые происходили на телефоне.

2. Можно ли получить удаленный доступ к чужому телефону?

Шпионские программы могут удаленно получить доступ к данным вашего телефона. Если ваш телефон был взломан, то они могут взломать текстовые сообщения, GPS-координаты, электронную почту, мультимедийные приложения и многое другое на вашем телефоне из любой точки мира.

3. Можете ли вы определить, что ваш телефон взломан?

Очень важно, чтобы вы могли определить признаки того, что ваш телефон взломан. Например, подозрительные сообщения или звонки, приложения, которые вы не загружали, необычно высокое использование данных и т.д.

В следующий раз, когда вы зададитесь вопросом, как бесплатно взломать чужой телефон, не прикасаясь к нему, вы можете воспользоваться любым из описанных выше способов. Хотя существует несколько методов, с помощью которых можно взломать чей-то телефон, не прикасаясь к нему, использование сторонних приложений для слежки за телефоном является самым простым способом.

KidsGuard Pro выделяется на фоне других методов, так как он предлагает высокую эффективность и сверхпростые операции. Именно поэтому его настоятельно рекомендуется использовать.

Множество удивительных функций

  • Отслеживание местоположения мобильного телефона в режиме реального времени и просмотр истории местоположения
  • Проверка всех входящих и исходящих звонков и SMS-сообщений
  • Шпионаж за приложениями социальных сетей, такими как WhatsApp, Instagram, Snapchat, Facebook, Viber, WeChat и др.
  • Удаленный доступ к файлам на целевом телефоне, таким как контакты, фотографии, журналы вызовов и т.д.
  • Записывайте нажатия клавиш на целевом устройстве, а также делайте скриншоты без ведома пользователя.

вам также может понравиться:

user

Posté sur January 31, 2023 ( Mis à jour: January 31, 2023 )

Сертифицированный специалист по контент-маркетингу с большой страстью к интернету и онлайн-безопасности. Она стремится просвещать аудиторию о советах и хитростях кибербезопасности.

(Cliquez pour évaluer ce message)

Généralement évalué 4.7 ( 170 participé)

Évalué avec succès!

Vous avez déjà noté cet article!

Краткое руководство. Получение номеров телефонов и управление ими

Возможности SMS и ТСОП зависят от используемого номера телефона и страны или региона, которые вы работаете в соответствии с адресом выставления счетов Azure. Дополнительные сведения см. в документации по условиям подписки.

Для заказов с большим объемом или в том случае, если нужный номер телефона недоступен, посетите эту страницу для получения дополнительной помощи.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Активный ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.
  • Установите Azure CLI.
  • Приобретенный номер телефона.

Установка

Добавление расширения

Добавьте расширение Службы коммуникации Azure для Azure CLI с помощью az extension команды.

az extension add --name communication 

Вход в Azure CLI

Вам потребуется войти в Azure CLI. Вы можете выполнить команду из az login терминала и предоставить учетные данные.

Operations

Вывод списка приобретенных номеров телефонов

Выполните следующую команду, чтобы получить все приобретенные номера телефонов.

az communication phonenumber list --connection-string "" 

Сделайте эту замену в коде:

Получение сведений о приобретенном номере телефона

Выполните следующую команду, чтобы получить сведения о номере телефона для приобретенного номера телефона.

az communication phonenumber show --phonenumber --connection-string "" 

Выполните следующие замены в коде:

  • Замените номер телефона, связанный с ресурсом Служб коммуникации.
  • Замените строка подключения.

(Необязательно) Использование операций телефонных номеров Azure CLI без передачи строка подключения

Вы можете настроить AZURE_COMMUNICATION_CONNECTION_STRING переменную среды для использования операций телефонных номеров Azure CLI без необходимости —connection_string передавать строка подключения. Чтобы настроить переменную среды, откройте окно консоли и выберите операционную систему на следующих вкладках. Замените фактической строкой подключения.

Откройте окно консоли и введите следующую команду:

setx AZURE_COMMUNICATION_CONNECTION_STRING "" 

После добавления переменной среды может потребоваться перезапустить все запущенные приложения, которым может понадобиться считать переменную среды, в том числе окно консоли. Например, если вы используете Visual Studio в качестве редактора, перезапустите Visual Studio перед запуском примера.

Измените .zshrc и добавьте переменную среды:

export AZURE_COMMUNICATION_CONNECTION_STRING="" 

После добавления переменной среды запустите source ~/.zshrc из окна консоли, чтобы применить изменения. Если вы создали переменную среды с открытой интегрированной средой разработки, для доступа к переменной может потребоваться закрыть и повторно открыть редактор, интегрированную среду разработки или оболочку.

Измените .bash_profile и добавьте переменную среды:

export AZURE_COMMUNICATION_CONNECTION_STRING="" 

После добавления переменной среды запустите source ~/.bash_profile из окна консоли, чтобы применить изменения. Если вы создали переменную среды с открытой интегрированной средой разработки, для доступа к переменной может потребоваться закрыть и повторно открыть редактор, интегрированную среду разработки или оболочку.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Активный ресурс Служб коммуникации.

Получение номера телефона

Чтобы начать подготовку номеров, перейдите к ресурсу Служб коммуникации на портале Azure.

Screenshot showing a Communication Services resource

Поиск доступных номеров телефонов

Перейдите в колонку Номера телефонов через меню ресурса.

Screenshot showing a Communication Services resource

Нажмите кнопку Получить, чтобы запустить мастер. Мастер в колонке Номера телефонов задаст вам ряд вопросов, которые помогут вам выбрать подходящий номер телефона для вашего сценария.

Сначала необходимо выбрать страну или регион, где вы хотите подготовить номер телефона. Затем нужно выбрать вариант использования, который лучше подходит для ваших потребностей.

Screenshot showing the Get phone numbers view.

Выбор возможностей номера телефона

Настройка номера телефона разделяется на два этапа:

  1. выбор типа номера;
  2. выбор возможностей номера.

Можно выбрать из двух типов телефонных номеров: Местный и Бесплатный. После выбора типа номера можно выбрать возможности.

В нашем примере мы выбрали Бесплатный тип номера с возможностями Совершение звонков и Отправка и получение SMS.

Screenshot showing the Select features view.

Здесь нажмите кнопку «Далее: номера» в нижней части страницы, чтобы настроить номера телефонов , которые вы хотите подготовить.

Настройка номеров телефонов

На странице Номера можно настроить номера телефонов, которые вы хотите подготовить.

Screenshot showing the Numbers selection page.

В этом кратком руководстве показана последовательность настройки номеров с типом бесплатный. Если вы выбрали номер с типом Местный, процесс может немного отличаться, но результат будет таким же.

В списке доступных кодов областей выберите Код города и введите количество подготавливаемых номеров, а затем щелкните Поиск, чтобы найти номера, соответствующие вашим требованиям. Отобразятся номера телефонов, соответствующие вашим потребностям, а также сведения о ежемесячной плате.

Screenshot showing the Numbers selection page with reserved numbers.

Доступность номеров зависит от выбранных типа номера, расположения и возможностей. Эти номера резервируются на небольшой период времени, пока не истечет срок действия транзакции. После этого вам нужно будет снова выбрать номера.

Чтобы просмотреть сводку покупки и разместить заказ, нажмите кнопку «Далее: сводка » в нижней части страницы.

Покупка номеров телефонов

На странице сводки отобразятся следующие сведения: тип номера, возможности, номера телефонов и общая ежемесячная плата за подготовку этих номеров телефонов.

Это ежемесячная абонентская плата за аренду выбранного номера телефона. В этом представлении не отображаются суммы для оплаты по мере использования, то есть расходы на осуществление или прием вызовов. Полностью цены перечислены здесь. Эти расходы зависят от типа номера и регионов, в которые осуществляются вызовы. Например, стоимость минуты вызова с регионального номера в Сиэтле на региональный номер в Нью-Йорке может отличаться от цены за вызов с того же номера на номер в Соединенном Королевстве.

Наконец, щелкните Разместить заказ в нижней части страницы, чтобы подтвердить свой выбор.

Screenshot showing the Summary page with the Number type, Features, Phone Numbers, and Total monthly cost shown.

Поиск номеров телефонов на портале Azure

Перейдите к ресурсу Служб коммуникации Azure на портале Azure.

Screenshot showing a Communication Services Resource

Выберите в меню колонку «Номера телефонов», чтобы управлять номерами телефонов.

Screenshot showing a Communication Services Resource

Может пройти несколько минут, пока выбранные для подготовки номера телефонов отобразятся на этой странице.

Обновление возможностей номера телефона

На странице Номера телефонов можно выбрать номер телефона для его настройки.

Screenshot showing the update features page.

Выберите функции из списка доступных, а затем нажмите кнопку Сохранить, чтобы применить выбранные элементы.

Освобождение номера телефона

На странице номера можно освободить номера телефонов.

Screenshot showing the release phone numbers page.

Выберите номер телефона, который требуется освободить, и нажмите кнопку Release (Освободить).

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Последняя версия клиентской библиотеки NET Core для вашей операционной системы.
  • Активный ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.

Проверка предварительных условий

  • В окне терминала или команды выполните команду dotnet , чтобы проверить, установлена ли клиентская библиотека .NET.

Установка

Создание нового приложения C#

В окне консоли (cmd, PowerShell или Bash) выполните команду dotnet new , чтобы создать консольное приложение с именем PhoneNumbersQuickstart . Эта команда создает простой проект «Hello World» на языке C# с одним файлом исходного кода Program.cs.

dotnet new console -o PhoneNumbersQuickstart 

Измените каталог на только что созданную папку приложения и выполните команду dotnet build , чтобы скомпилировать приложение.

cd PhoneNumbersQuickstart dotnet build 

Установка пакета

Оставаясь в каталоге приложения, установите клиентскую библиотеку Служб коммуникации PhoneNumbers для .NET с помощью команды dotnet add package .

dotnet add package Azure.Communication.PhoneNumbers --version 1.0.0 

Добавьте директиву using в начало файла Program.cs, чтобы включить пространства имен.

using System; using System.Linq; using System.Threading.Tasks; using Azure.Communication.PhoneNumbers; 

Обновите сигнатуру функции Main , чтобы она стала асинхронной.

static async Task Main(string[] args)

аутентификация клиента;

Телефон клиенты номеров можно пройти проверку подлинности с помощью строка подключения, приобретенных из ресурсов Службы коммуникации Azure в портал Azure.

// Get a connection string to our Azure Communication Services resource. var connectionString = ""; var client = new PhoneNumbersClient(connectionString); 

Телефон клиенты number также имеют возможность пройти проверку подлинности с помощью проверки подлинности Microsoft Entra. В этом случае переменные среды AZURE_CLIENT_SECRET , AZURE_CLIENT_ID и AZURE_TENANT_ID должны быть настроены для проверки подлинности.

// Get an endpoint to our Azure Communication Services resource. var endpoint = new Uri(""); TokenCredential tokenCredential = new DefaultAzureCredential(); client = new PhoneNumbersClient(endpoint, tokenCredential); 

Управление номерами телефонов

Поиск доступных номеров телефонов

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

var capabilities = new PhoneNumberCapabilities(calling:PhoneNumberCapabilityType.None, sms:PhoneNumberCapabilityType.Outbound); var searchOptions = new PhoneNumberSearchOptions < AreaCode = "833", Quantity = 1 >; var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync("US", PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities, searchOptions); await searchOperation.WaitForCompletionAsync(); 

Покупка номеров телефонов

Результатом поиска номеров телефона является PhoneNumberSearchResult . Он содержит SearchId , который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId); await purchaseOperation.WaitForCompletionResponseAsync(); 

Получение номеров телефона

После покупки номера его можно получить из клиента.

var getPhoneNumberResponse = await client.GetPurchasedPhoneNumberAsync("+14255550123"); Console.WriteLine($"Phone number: , country code: "); 

Вы также можете получить все приобретенные номера телефонов.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync(); await foreach (var purchasedPhoneNumber in purchasedPhoneNumbers) < Console.WriteLine($"Phone number: , country code: "); > 

Обновление возможностей номера телефона

Возможности приобретенного номера можно обновить.

var updateCapabilitiesOperation = await client.StartUpdateCapabilitiesAsync("+14255550123", calling: PhoneNumberCapabilityType.Outbound, sms: PhoneNumberCapabilityType.InboundOutbound); await updateCapabilitiesOperation.WaitForCompletionAsync(); 

Освобождение номера телефона

Приобретенный номер телефона можно освободить.

var releaseOperation = await client.StartReleasePhoneNumberAsync("+14255550123"); await releaseOperation.WaitForCompletionResponseAsync(); 

Выполнение кода

Запустите приложение из каталога приложения с помощью команды dotnet run .

dotnet run 

Пример кода

Пример приложения можно скачать в репозитории GitHub.

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • комплект SDK для Java (JDK) версии 8 или более поздней версии.
  • Apache Maven.
  • Развернутый ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.

Настройка

Создание нового приложения Java

Откройте терминал или командное окно. Перейдите в каталог, в котором нужно создать приложение Java. Выполните приведенную ниже команду, чтобы создать проект Java из шаблона maven-archetype-quickstart.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false 

Вы заметите, что задача generate создала каталог с тем же именем, что и у artifactId . В этом каталоге каталог src/main/java содержит исходный код проекта, pom.xml содержит источник теста, а файл src/test/java directory является объектной моделью проекта (POM).

Установка пакета

Откройте файл pom.xml в текстовом редакторе. Добавьте приведенные ниже элементы зависимости в группу зависимостей.

 com.azure azure-communication-common 1.0.0  com.azure azure-communication-phonenumbers 1.0.0  com.azure azure-identity 1.2.3  

Настройка платформы приложения

Из каталога проекта:

  1. Перейдите в каталог /src/main/java/com/communication/quickstart.
  2. Откройте файл App.java в редакторе.
  3. Замените оператор System.out.println(«Hello world!»); .
  4. Добавьте директивы import .

Используйте следующий код:

import com.azure.communication.phonenumbers.*; import com.azure.communication.phonenumbers.models.*; import com.azure.core.http.rest.*; import com.azure.core.util.Context; import com.azure.core.util.polling.LongRunningOperationStatus; import com.azure.core.util.polling.PollResponse; import com.azure.core.util.polling.SyncPoller; import com.azure.identity.*; import java.io.*; public class App < public static void main( String[] args ) throws IOException < System.out.println("Azure Communication Services - Phone Numbers Quickstart"); // Quickstart code goes here >> 

Проверка подлинности клиента номеров телефона

Параметр Телефон NumberClientBuilder включен для использования проверки подлинности Microsoft Entra

// You can find your endpoint and access key from your resource in the Azure portal String endpoint = "https://.communication.azure.com"; PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder() .endpoint(endpoint) .credential(new DefaultAzureCredentialBuilder().build()) .buildClient(); 

Кроме того, для проверки подлинности также можно использовать конечную точку и ключ доступа из ресурса коммуникации.

// You can find your connection string from your resource in the Azure portal String connectionString = "endpoint=https://.communication.azure.com/;accesskey="; PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder() .connectionString(connectionString) .buildClient(); 

Управление номерами телефонов

Поиск доступных номеров телефонов

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

 PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities() .setCalling(PhoneNumberCapabilityType.INBOUND) .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND); PhoneNumberSearchOptions searchOptions = new PhoneNumberSearchOptions().setAreaCode("833").setQuantity(1); SyncPoller poller = phoneNumberClient .beginSearchAvailablePhoneNumbers("US", PhoneNumberType.TOLL_FREE, PhoneNumberAssignmentType.APPLICATION, capabilities, searchOptions, Context.NONE); PollResponse response = poller.waitForCompletion(); String searchId = ""; if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus())

Покупка номеров телефонов

Результатом поиска номеров телефонов является PhoneNumberSearchResult. Он содержит searchId , который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

PollResponse purchaseResponse = phoneNumberClient.beginPurchasePhoneNumbers(searchId, Context.NONE).waitForCompletion(); System.out.println("Purchase phone numbers operation is: " + purchaseResponse.getStatus()); 

Получение номеров телефона

После покупки номера его можно получить из клиента.

PurchasedPhoneNumber phoneNumber = phoneNumberClient.getPurchasedPhoneNumber("+14255550123"); System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode()); 

Вы также можете получить все приобретенные номера телефонов.

PagedIterable phoneNumbers = phoneNumberClient.listPurchasedPhoneNumbers(Context.NONE); PurchasedPhoneNumber phoneNumber = phoneNumbers.iterator().next(); System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode()); 

Обновление возможностей номера телефона

Возможности приобретенного номера можно обновить.

PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities(); capabilities .setCalling(PhoneNumberCapabilityType.INBOUND) .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND); SyncPoller poller = phoneNumberClient.beginUpdatePhoneNumberCapabilities("+18001234567", capabilities, Context.NONE); PollResponse response = poller.waitForCompletion(); if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) < PurchasedPhoneNumber phoneNumber = poller.getFinalResult(); System.out.println("Phone Number Calling capabilities: " + phoneNumber.getCapabilities().getCalling()); //Phone Number Calling capabilities: inbound System.out.println("Phone Number SMS capabilities: " + phoneNumber.getCapabilities().getSms()); //Phone Number SMS capabilities: inbound+outbound >

Освобождение номера телефона

Приобретенный номер телефона можно освободить.

PollResponse releaseResponse = phoneNumberClient.beginReleasePhoneNumber("+14255550123", Context.NONE).waitForCompletion(); System.out.println("Release phone number operation is: " + releaseResponse.getStatus()); 

Выполнение кода

Перейдите в каталог, содержащий файл pom.xml, и скомпилируйте проект с помощью следующей команды mvn .

mvn compile 

Затем выполните сборку пакета.

mvn package 

Выполните следующую команду mvn для запуска приложения.

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false 

В выходных данных приложения описывают каждое выполненное действие.

Azure Communication Services - Phone Numbers Quickstart Searched phone numbers: [+18001234567] Purchase phone numbers operation is: SUCCESSFULLY_COMPLETED Phone Number Country Code: US Phone Number Calling capabilities: inbound Phone Number SMS capabilities: inbound Release phone number operation is: SUCCESSFULLY_COMPLETED 

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Python версии 3.7 и выше.
  • Развернутый ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.

Установка

Создание приложения Python

Откройте терминал или командное окно, создайте каталог для своего приложения и перейдите к нему.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart 

Используйте текстовый редактор для создания файла с именем phone_numbers_sample.py в корневом каталоге проекта и добавьте следующий код. Мы добавим оставшийся код краткого руководства в следующих разделах.

import os from azure.communication.phonenumbers import PhoneNumbersClient try: print('Azure Communication Services - Phone Numbers Quickstart') # Quickstart code goes here except Exception as ex: print('Exception:') print(ex) 

Установка пакета

Оставаясь в каталоге приложения, установите пакет клиентской библиотеки Python для администрирования Служб коммуникации Azure с помощью команды pip install .

pip install azure-communication-phonenumbers 

Проверка подлинности клиента номеров телефона

Эта PhoneNumbersClient функция включена для использования проверки подлинности Microsoft Entra. DefaultAzureCredential Использование объекта — самый простой способ приступить к работе с идентификатором Microsoft Entra и установить его с помощью pip install команды.

pip install azure-identity 

DefaultAzureCredential Для создания объекта требуется иметь AZURE_CLIENT_ID AZURE_CLIENT_SECRET и AZURE_TENANT_ID уже задать переменные среды с соответствующими значениями из зарегистрированного приложения Microsoft Entra.

Чтобы быстро узнать, как получить эти переменные среды, следуйте инструкциям в кратком руководстве по настройке субъектов-служб через интерфейс командной строки.

После установки библиотеки azure-identity можно продолжить проверку подлинности клиента.

import os from azure.communication.phonenumbers import PhoneNumbersClient from azure.identity import DefaultAzureCredential # You can find your endpoint from your resource in the Azure portal endpoint = 'https://.communication.azure.com' try: print('Azure Communication Services - Phone Numbers Quickstart') credential = DefaultAzureCredential() phone_numbers_client = PhoneNumbersClient(endpoint, credential) except Exception as ex: print('Exception:') print(ex) 

Кроме того, для проверки подлинности также можно использовать конечную точку и ключ доступа из ресурса коммуникации.

import os from azure.communication.phonenumbers import PhoneNumbersClient # You can find your connection string from your resource in the Azure portal connection_string = 'https://.communication.azure.com/;accesskey=' try: print('Azure Communication Services - Phone Numbers Quickstart') phone_numbers_client = PhoneNumbersClient.from_connection_string(connection_string) except Exception as ex: print('Exception:') print(ex) 

Функции

После проверки подлинности PhoneNumbersClient мы можем приступить к работе над различными функциями, которые она может выполнять.

Поиск доступных номеров телефонов

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

import os from azure.communication.phonenumbers import PhoneNumbersClient, PhoneNumberCapabilityType, PhoneNumberAssignmentType, PhoneNumberType, PhoneNumberCapabilities from azure.identity import DefaultAzureCredential # You can find your endpoint from your resource in the Azure portal endpoint = 'https://.communication.azure.com' try: print('Azure Communication Services - Phone Numbers Quickstart') credential = DefaultAzureCredential() phone_numbers_client = PhoneNumbersClient(endpoint, credential) capabilities = PhoneNumberCapabilities( calling = PhoneNumberCapabilityType.INBOUND, sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND ) search_poller = phone_numbers_client.begin_search_available_phone_numbers( "US", PhoneNumberType.TOLL_FREE, PhoneNumberAssignmentType.APPLICATION, capabilities, polling = True ) search_result = search_poller.result() print ('Search id: ' + search_result.search_id) phone_number_list = search_result.phone_numbers print('Reserved phone numbers:') for phone_number in phone_number_list: print(phone_number) except Exception as ex: print('Exception:') print(ex) 

Покупка номеров телефонов

Результатом поиска номеров телефона является PhoneNumberSearchResult . Он содержит searchId , который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

import os from azure.communication.phonenumbers import ( PhoneNumbersClient, PhoneNumberCapabilityType, PhoneNumberAssignmentType, PhoneNumberType, PhoneNumberCapabilities ) from azure.identity import DefaultAzureCredential # You can find your endpoint from your resource in the Azure portal endpoint = 'https://.communication.azure.com' try: print('Azure Communication Services - Phone Numbers Quickstart') credential = DefaultAzureCredential() phone_numbers_client = PhoneNumbersClient(endpoint, credential) capabilities = PhoneNumberCapabilities( calling = PhoneNumberCapabilityType.INBOUND, sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND ) search_poller = phone_numbers_client.begin_search_available_phone_numbers( "US", PhoneNumberType.TOLL_FREE, PhoneNumberAssignmentType.APPLICATION, capabilities, area_code="833", polling = True ) search_result = poller.result() print ('Search id: ' + search_result.search_id) phone_number_list = search_result.phone_numbers print('Reserved phone numbers:') for phone_number in phone_number_list: print(phone_number) purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(search_result.search_id, polling = True) purchase_poller.result() print("The status of the purchase operation was: " + purchase_poller.status()) except Exception as ex: print('Exception:') print(ex) 

Получение приобретенных номеров телефонов

После покупки номера его можно получить из клиента.

purchased_phone_number_information = phone_numbers_client.get_purchased_phone_number("+18001234567") print('Phone number: ' + purchased_phone_number_information.phone_number) print('Country code: ' + purchased_phone_number_information.country_code) 

Вы также можете получить все приобретенные номера телефонов.

purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers() print('Purchased phone numbers:') for purchased_phone_number in purchased_phone_numbers: print(purchased_phone_number.phone_number) 

Обновление возможностей номера телефона

Вы можете обновить возможности ранее приобретенного номера телефона.

update_poller = phone_numbers_client.begin_update_phone_number_capabilities( "+18001234567", PhoneNumberCapabilityType.OUTBOUND, PhoneNumberCapabilityType.OUTBOUND, polling = True ) update_poller.result() print('Status of the operation: ' + update_poller.status()) 

Освобождение номера телефона

Приобретенный номер телефона можно освободить.

release_poller = phone_numbers_client.begin_release_phone_number("+18001234567") release_poller.result() print('Status of the operation: ' + release_poller.status()) 

Выполнение кода

В командной строке консоли перейдите в каталог, содержащий файл phone_numbers_sample.py, а затем выполните следующую команду Python для запуска приложения.

python phone_numbers_sample.py 

Итоговый код для этого краткого руководства можно найти на сайте GitHub.

Необходимые компоненты

  • Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
  • Node.js, активная версия LTS и версия Maintenance LTS (рекомендуются версии 8.11.1 и 10.14.1).
  • Активный ресурс Служб коммуникации и строка подключения. Создайте ресурс Служб коммуникации.

Проверка предварительных условий

  • В терминале или командном окне воспользуйтесь node —version , чтобы проверить, установлен ли пакет Node.js.

Установка

Создание нового приложения Node.js

Откройте терминал или командное окно, создайте каталог для своего приложения и перейдите к нему.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart 

Воспользуйтесь командой npm init -y , чтобы создать файл package.json с параметрами по умолчанию.

npm init -y 

Создайте файл с именем phone-numbers-quickstart.js в корне только что созданного каталога. Добавьте в него следующий фрагмент кода:

async function main() < // quickstart code will here >main(); 

Установка пакета

Используйте команду npm install , чтобы установить клиентскую библиотеку Служб коммуникации для номеров телефона для JavaScript.

npm install @azure/communication-phone-numbers --save 

Параметр —save добавляет библиотеку как зависимость в файле пакета package.json.

аутентификация клиента;

Импортируйте PhoneNumbersClient из клиентской библиотеки и создайте его экземпляр с помощью строки подключения. Приведенный ниже код извлекает строку подключения для ресурса из переменной среды с именем COMMUNICATION_SERVICES_CONNECTION_STRING . См. сведения о том, как управлять строкой подключения ресурса.

Добавьте следующий код в начало файла phone-numbers-quickstart.js:

const < PhoneNumbersClient >= require('@azure/communication-phone-numbers'); // This code demonstrates how to fetch your connection string // from an environment variable. const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING']; // Instantiate the phone numbers client const phoneNumbersClient = new PhoneNumbersClient(connectionString); 

Управление номерами телефонов

Поиск доступных номеров телефонов

Чтобы приобрести номера телефонов, сначала необходимо найти доступные номера. Для поиска номеров телефонов укажите код города, тип назначения, возможности номеров телефона, тип номера телефона и количество. Обратите внимание, что для типа бесплатного телефонного номера указывать код города необязательно.

Добавьте в функцию main следующий фрагмент кода:

/** * Search for Available Phone Number */ // Create search request const searchRequest = < countryCode: "US", phoneNumberType: "tollFree", assignmentType: "application", capabilities: < sms: "outbound", calling: "none" >, areaCode: "833", quantity: 1 >; const searchPoller = await phoneNumbersClient.beginSearchAvailablePhoneNumbers(searchRequest); // The search is underway. Wait to receive searchId. const < searchId, phoneNumbers >= await searchPoller.pollUntilDone(); const phoneNumber = phoneNumbers[0]; console.log(`Found phone number: $`); console.log(`searchId: $`); 

Покупка номера телефона

Результатом поиска номеров телефона является PhoneNumberSearchResult . Он содержит searchId , который можно передать в API для покупки номеров, чтобы купить найденные номера. Обратите внимание, что при вызове API для покупки номеров телефона на учетную запись Azure будет начисляться платеж.

Добавьте в функцию main следующий фрагмент кода:

/** * Purchase Phone Number */ const purchasePoller = await phoneNumbersClient.beginPurchasePhoneNumbers(searchId); // Purchase is underway. await purchasePoller.pollUntilDone(); console.log(`Successfully purchased $`); 

Обновление возможностей номера телефона

После покупки номера телефона добавьте следующий код, чтобы обновить его возможности:

/** * Update Phone Number Capabilities */ // Create update request. // This will update phone number to send and receive sms, but only send calls. const updateRequest = < sms: "inbound+outbound", calling: "outbound" >; const updatePoller = await phoneNumbersClient.beginUpdatePhoneNumberCapabilities( phoneNumber, updateRequest ); // Update is underway. await updatePoller.pollUntilDone(); console.log("Phone number updated successfully."); 

Получение приобретенных номеров телефонов

После покупки номера его можно получить из клиента. Добавьте следующий код в функцию main , чтобы получить только что приобретенный номер телефона:

/** * Get Purchased Phone Number */ const < capabilities >= await phoneNumbersClient.getPurchasedPhoneNumber(phoneNumber); console.log("These capabilities:", capabilities, "should be the same as these:", updateRequest, "."); 

Вы также можете получить все приобретенные номера телефонов.

const purchasedPhoneNumbers = await phoneNumbersClient.listPurchasedPhoneNumbers(); for await (const purchasedPhoneNumber of purchasedPhoneNumbers) < console.log(`Phone number: $, country code: $.`); > 

Освобождение номера телефона

Теперь приобретенный номер телефона можно освободить. Добавьте приведенный ниже фрагмент кода в функцию main :

/** * Release Purchased Phone Number */ const releasePoller = await phoneNumbersClient.beginReleasePhoneNumber(phoneNumber); // Release is underway. await releasePoller.pollUntilDone(); console.log("Successfully release phone number."); 

Выполнение кода

Для выполнения кода, добавленного в файла phone-numbers-quickstart.js, используйте команду node .

node phone-numbers-quickstart.js 

Устранение неполадок

Распространенные вопросы и проблемы:

  • При удалении номер телефона не будет освобожден или доступен для повторного приобретения до окончания периода выставления счетов.
  • При удалении ресурса Служб коммуникации связанные с ним номера телефонов немедленно автоматически освобождаются.

Следующие шаги

Из этого руководства вы узнали, как выполнить следующие действия:

  • приобрести номер телефона;
  • управлять номером телефона;
  • освободить номер телефона.
  • Отправка бесплатного приложения проверки подлинности (см. при необходимости)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *