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

Получение номеров телефонов, зарегистрированных для аккаунта WhatsApp Business компании, с помощью API WhatsApp Business Management.

Прежде чем начать

Вам понадобятся:

  • ID бизнес-аккаунта WhatsApp компании, номера телефонов которой нужно получить;
  • маркер доступа системного пользователя, связанный с бизнес-аккаунтом WhatsApp компании;
  • разрешение whatsapp_business_management.

Ограничения

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

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

Чтобы получить все номера телефонов, связанных с аккаунтом WhatsApp Business, отправьте запрос GET к конечной точке номеров телефонов аккаунта WhatsApp Business.

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

Пример запроса

Для удобства чтения применено форматирование.
curl -X GET "https://graph.facebook.com/v21.0/{whatsapp-business-account-id}/phone_numbers
      ?access_token={system-user-access-token}"

В случае успеха возвращается объект JSON со списком всех имен компании, номеров телефонов, идентификаторов номеров телефонов и рейтингов качества компании. Результаты сортируются по дате регистрации на сайте поставщика в порядке убывания (сначала показаны самые последние даты).

{
  "data": [
    {
      "verified_name": "Jasper's Market",
      "display_phone_number": "+1 631-555-5555",
      "id": "1906385232743451",
      "quality_rating": "GREEN"
      
    },
    {
      "verified_name": "Jasper's Ice Cream",
      "display_phone_number": "+1 631-555-5556",
      "id": "1913623884432103",
      "quality_rating": "NA"
    }
  ]
}

Пример запроса

Для удобства чтения применено форматирование.
curl -X GET "https://graph.facebook.com/v21.0/{whatsapp-business-account-id}/phone_numbers
      ?access_token={system-user-access-token}]&sort=['last_onboarded_time_ascending']"

В случае успеха возвращается объект JSON со списком всех имен компании, номеров телефонов, идентификаторов номеров телефонов и рейтингов качества компании. Он сортируется в порядке возрастания по времени регистрации на сайте поставщика — пользователи, которые зарегистрировались позже, указаны в списке последними.

{
  "data": [
   {
      "verified_name": "Jasper's Ice Cream",
      "display_phone_number": "+1 631-555-5556",
      "id": "1913623884432103",
      "quality_rating": "NA"
    },
    {
      "verified_name": "Jasper's Market",
      "display_phone_number": "+1 631-555-5555",
      "id": "1906385232743451",
      "quality_rating": "GREEN"     
    }   
  ]
}

Фильтрация номеров телефонов

Вы можете запросить номера телефонов и отфильтровать их по признаку account_mode. Этот параметр фильтрации сейчас проходит бета-тестирование. Доступ к нему есть не у всех разработчиков.

Параметры

ИмяОписание

field

Значение:account_mode

operator

Значение:EQUAL

value

Значения:SANDBOX, LIVE

Пример запроса

curl -i -X GET "https://graph.facebook.com/v21.0/{whatsapp-business-account-ID}/phone_numbers?filtering=[{"field":"account_mode","operator":"EQUAL","value":"SANDBOX"}]&access_token=access-token"

Пример ответа

{
  "data": [
    {
      "id": "1972385232742141",    
      "display_phone_number": "+1 631-555-1111",
      "verified_name": "John’s Cake Shop",
      "quality_rating": "UNKNOWN",
    }
  ],
  "paging": {
	"cursors": {
		"before": "abcdefghij",
		"after": "klmnopqr"
	}
   }
}

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

Чтобы получить информацию об одном номере телефона, отправьте запрос GET к конечной точке Phone Number.

Синтаксис запроса

GET https://graph.facebook.com/<API_VERSION>/<PHONE_NUMBER_ID>

Пример запроса

curl \
'https://graph.facebook.com/v15.0/105954558954427/' \
-H 'Authorization: Bearer EAAFl...'

В случае успеха возвращается объект JSON с именем компании, номером телефона, его идентификатором и рейтингом качества.

{
  "code_verification_status" : "VERIFIED",
  "display_phone_number" : "15555555555",
  "id" : "105954558954427",
  "quality_rating" : "GREEN",
  "verified_name" : "Support Number"
}

Получение статуса отображаемого имени (бета-версия)

Укажите fields=name_status в качестве параметра строки запроса, чтобы получить статус отображаемого имени, связанного с определенным номером телефона. Сейчас это поле проходит бета-тестирование и доступно не всем разработчикам.

Пример запроса

curl \
'https://graph.facebook.com/v15.0/105954558954427?fields=name_status' \
-H 'Authorization: Bearer EAAFl...'

Пример ответа

{
  "id" : "105954558954427",
  "name_status" : "AVAILABLE_WITHOUT_REVIEW"
}

Возможные значения параметра name_status:

  • APPROVED — имя одобрено, вы можете скачать сертификат;
  • AVAILABLE_WITHOUT_REVIEW — сертификат для телефона доступен для скачивания, а отображаемое имя можно начать использовать без проверки;
  • DECLINED — имя не одобрено, вы не можете скачать сертификат;
  • EXPIRED — срок действия сертификата истек, его невозможно скачать;
  • PENDING_REVIEW — запрос находится на проверке, вы не можете скачать сертификат;
  • NONE — сертификат недоступен.

Сертификаты действительны 7 дней.

Подробнее

Список всех возможных значений для каждого поля можно найти в разделе справки API Graph, посвященном полю "Номера телефонов".