Twilio: как получить субсчет телефонного номера?

#python #twilio

Вопрос:

Возможно ли, что, используя номер телефона, я смогу получить номер субсчета, которому принадлежит этот номер телефона в Twilio?

Я использую следующее в python:

 import os
from twilio.rest import Client

os.environ['account_sid'] = 'Master_account_SID'
os.environ['auth_token'] = 'Master_account_token'
account_sid = os.environ['account_sid']
auth_token = os.environ['auth_token']

client = Client(account_sid, auth_token)

incoming_phone_num = client.incoming_phone_numbers.list(phone_number=' 1XXXXXXXXXX', limit=10)

print(incoming_phone_num.account_sid)
 

Приведенное выше возвращает ошибку «объект не имеет атрибута ‘account_sid'».

Спасибо.

Ответ №1:

Вот JavaScript, но вы получите общее представление из приведенного ниже объяснения.

 const accountSid = process.env.TWILIO_ACCOUNT_SID;
const authToken = process.env.TWILIO_AUTH_TOKEN;
const client = require('twilio')(accountSid, authToken);

const phoneNumberToSearch = ' 1484xxxxxx';
let subAccount;

client.api.accounts.list({status: 'active', limit: 1000})
  .then(accounts => {
    accounts.forEach(a => {
      subAccount = require('twilio')(accountSid, authToken, { accountSid: a.sid });
      subAccount.incomingPhoneNumbers
        .list({phoneNumber: phoneNumberToSearch, limit: 1})
        .then(incomingPhoneNumbers => {
          incomingPhoneNumbers.forEach(i => console.log(i.accountSid))
        });
    })
  });
 

Используемый API:

REST API: Учетные записи

  • Чтобы перечислить все субсчета
  • Пример Кода: Перечислите Все Активные Учетные Записи

Входящий ресурс с номером телефона

  • Для перебора каждого субсчета в поисках номера
  • Пример кода: Отфильтруйте входящие номера телефонов с точным совпадением

Совершение телефонного звонка с субсчета

  • Структура для использования основных учетных данных проекта для субсчета
  • Пример кода: Сделайте звонок с субсчета (чтобы узнать, как позвонить клиенту)

Комментарии:

1. Большое вам спасибо, теперь у меня появилась идея.

Ответ №2:

Следуя той же идее, что и ответ Алана, но так как вы писали python:

 from twilio.rest import Client

client = Client()

phoneNumber = ' 1xxxxxxxxxx'

subaccounts = client.api.accounts.list(status='active', limit=1000)

for subaccount in subaccounts:
    subclient = Client(account_sid=subaccount.sid)
    numbers = subclient.incoming_phone_numbers.list(phone_number=phoneNumber, limit=1)
    if len(numbers) > 0:
        print(subaccount.sid, subaccount.friendly_name)
 

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

Обратите внимание, что API python Twilio будет принимать учетные данные из самих переменных среды, поэтому вам не нужно было этого делать.