Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве описано, как настроить и использовать Postman для запроса к Службам коммуникации Azure с помощью ПРОТОКОЛА HTTP. В конце этого руководства вы успешно отправляете сообщение службы коротких сообщений (SMS) с помощью служб коммуникации и Postman. Затем можно использовать Postman для изучения других API в службах коммуникации.
В этом руководстве описано, как:
- Скачайте Postman.
- Настройте Postman для подписывания HTTP-запросов.
- Отправьте запрос к API SMS служб коммуникации для отправки сообщения.
Prerequisites
- Учетная запись Azure с активной подпиской. Если у вас нет подписки Azure, вы можете создать учетную запись бесплатно. Бесплатная учетная запись дает вам $ 200 в кредитах Azure, чтобы попробовать любое сочетание служб.
- Ресурс активных служб связи и строка соединения. Если у вас нет ресурса, см. статью "Создание ресурса служб коммуникации".
- Телефонный номер служб коммуникации, который может отправлять SMS-сообщения. Чтобы получить номер телефона, см. статью "Получить номер телефона".
Скачивание и установка Postman
Postman — это настольное приложение, которое может выполнять запросы к любому HTTP API. Postman часто используется для тестирования и изучения API. В этом руководстве вы скачиваете последнюю настольную версию с сайта Postman. Postman имеет версии для Windows, Mac и Linux, поэтому скачайте версию, соответствующую вашей операционной системе.
После завершения скачивания откройте приложение. Начальный экран запрашивает вход или создание учетной записи Postman. Создание учетной записи является необязательным, и ее можно пропустить, выбрав "Пропустить" и перейти к приложению. Создание учетной записи сохраняет параметры запроса API в Postman. Затем вы можете забрать запросы на других компьютерах.
После создания учетной записи или пропуска шага вы увидите основной экран Postman.
Создание и настройка коллекции Postman
Postman может упорядочивать запросы различными способами. В целях этого руководства вы создадите коллекцию Postman. Чтобы выполнить эту задачу, в левой части приложения выберите "Коллекции".
Нажмите кнопку "Создать новую коллекцию", чтобы начать процесс создания коллекции. Откроется новая вкладка в центре Postman, где вы называете коллекцию. Здесь коллекция называется Службами коммуникации Azure.
После создания и имени коллекции вы будете готовы к настройке.
Добавление переменных коллекции
Для обработки проверки подлинности и упрощения запросов необходимо указать две переменные коллекции в созданной коллекции Служб коммуникации. Эти переменные доступны для всех запросов в коллекции. Чтобы начать создание переменных, перейдите на вкладку "Переменные".
На вкладке "Коллекции" создайте две переменные:
-
ключ. Эта переменная должна быть одним из ключей на странице ключей служб коммуникации на портале Azure. Примером является
oW...A==. -
конечная точка. Эта переменная должна быть конечной точкой служб коммуникации на странице "Ключ ". Обязательно удалите конечный слэш. Примером является
https://contoso.communication.azure.com.
На вкладке "Переменные" введите эти значения в столбце "Начальное значение ". Выберите «Persist All» в правом верхнем углу. При правильной настройке панель Postman должна выглядеть примерно так, как показано на следующем рисунке.
Дополнительные сведения о переменных см. в документации Postman.
Создание скрипта предварительного запроса
Следующим шагом является создание предварительного скрипта в Postman. Скрипт предварительного запроса выполняется перед каждым запросом в Postman. Он может изменять или модифицировать параметры запроса. Этот скрипт используется для подписывания HTTP-запросов, чтобы службы коммуникации могли авторизовать их. Дополнительные сведения о требованиях к подписи см. в нашем руководстве по проверке подлинности.
Вы создаете этот скрипт в коллекции для того, чтобы он выполнялся при любом запросе в коллекции. Для этого на вкладке "Коллекции" выберите скрипт предварительного запроса.
Теперь вы создадите скрипт предварительного запроса, введя его в текстовой области. Этот шаг может быть проще, если вы напишете его в полный редактор кода, например Visual Studio Code , прежде чем вставить его. В этом руководстве описаны все части процесса скрипта. Перейдите к концу, если вы хотите скопировать скрипт в Postman и начать работу. Давайте начнем писать сценарий.
Написание скрипта предварительного запроса
Первым шагом является создание строки универсального времени (UTC) и добавление ее в Date заголовок HTTP. Сохраните эту строку в переменной, чтобы использовать ее позже при подписании.
// Set the Date header to our Date as a UTC String.
const dateStr = new Date().toUTCString();
pm.request.headers.upsert({key:'Date', value: dateStr});
Затем хэшируйте тело запроса с помощью SHA 256 и поместите его в заголовок x-ms-content-sha256. Postman включает некоторые стандартные библиотеки для хэширования и подписывания глобально, поэтому вам не нужно устанавливать их или требовать их.
// Hash the request body by using SHA256 and encode it as Base64
const hashedBodyStr = CryptoJS.SHA256(pm.request.body.raw).toString(CryptoJS.enc.Base64)
// And add that to the header x-ms-content-sha256
pm.request.headers.upsert({
key:'x-ms-content-sha256',
value: hashedBodyStr
});
Используйте указанную ранее переменную конечной точки, чтобы определить значение заголовка узла HTTP. Заголовок Host не устанавливается до тех пор, пока не будет обработан этот скрипт.
// Get our previously specified endpoint variable.
const endpoint = pm.variables.get('endpoint')
// Remove the https prefix to create a suitable "Host" value.
const hostStr = endpoint.replace('https://','');
С помощью этой информации теперь можно создать строку, которую вы подписываете для HTTP-запроса. Строка состоит из нескольких ранее созданных значений.
// This gets the part of our URL that is after the endpoint, for example, in https://contoso.communication.azure.com/sms, it will get '/sms'.
const url = pm.request.url.toString().replace('{{endpoint}}','');
// Construct our string, which we'll sign, by using various previously created values.
const stringToSign = pm.request.method + '\n' + url + '\n' + dateStr + ';' + hostStr + ';' + hashedBodyStr;
Наконец, вы подписываете эту строку с помощью ключа Служб коммуникации. Затем добавьте этот ключ в запрос в заголовке Authorization .
// Decode our access key from previously created variables into bytes from Base64.
const key = CryptoJS.enc.Base64.parse(pm.variables.get('key'));
// Sign our previously calculated string with HMAC 256 and our key. Convert it to Base64.
const signature = CryptoJS.HmacSHA256(stringToSign, key).toString(CryptoJS.enc.Base64);
// Add our final signature in Base64 to the authorization header of the request.
pm.request.headers.upsert({
key:'Authorization',
value: "HMAC-SHA256 SignedHeaders=date;host;x-ms-content-sha256&Signature=" + signature
});
Последний скрипт предварительного запроса
Последний скрипт предварительного запроса должен выглядеть примерно так:
// Set the Date header to our Date as a UTC String.
const dateStr = new Date().toUTCString();
pm.request.headers.upsert({key:'Date', value: dateStr});
// Hash the request body by using SHA256 and encode it as Base64.
const hashedBodyStr = CryptoJS.SHA256(pm.request.body.raw).toString(CryptoJS.enc.Base64)
// And add that to the header x-ms-content-sha256.
pm.request.headers.upsert({
key:'x-ms-content-sha256',
value: hashedBodyStr
});
// Get our previously specified endpoint variable.
const endpoint = pm.variables.get('endpoint')
// Remove the https prefix to create a suitable "Host" value.
const hostStr = endpoint.replace('https://','');
// This gets the part of our URL that is after the endpoint, for example, in https://contoso.communication.azure.com/sms, it will get '/sms'.
const url = pm.request.url.toString().replace('{{endpoint}}','');
// Construct our string, which we'll sign, by using various previously created values.
const stringToSign = pm.request.method + '\n' + url + '\n' + dateStr + ';' + hostStr + ';' + hashedBodyStr;
// Decode our access key from previously created variables into bytes from Base64.
const key = CryptoJS.enc.Base64.parse(pm.variables.get('key'));
// Sign our previously calculated string with HMAC 256 and our key. Convert it to Base64.
const signature = CryptoJS.HmacSHA256(stringToSign, key).toString(CryptoJS.enc.Base64);
// Add our final signature in Base64 to the authorization header of the request.
pm.request.headers.upsert({
key:'Authorization',
value: "HMAC-SHA256 SignedHeaders=date;host;x-ms-content-sha256&Signature=" + signature
});
Введите или вставьте этот окончательный скрипт в текстовой области на вкладке "Скрипт предварительного запроса ".
После ввода нажмите клавиши CTRL+S или нажмите кнопку "Сохранить ", чтобы сохранить сценарий в коллекции.
Создание запроса в Postman
Теперь, когда все настроено, вы готовы создать запрос служб коммуникации в Postman. Чтобы приступить к работе, выберите знак плюса (+) рядом с коллекцией Служб коммуникации.
Вы создали новую вкладку для запроса в Postman, и теперь ее необходимо настроить. Вы отправляете запрос к API отправки SMS, поэтому обязательно обратитесь к документации по этому API для получения помощи. Давайте настроим запрос Postman.
Чтобы начать, задайте тип POST запроса и введите {{endpoint}}/sms?api-version=2021-03-07 в поле URL-адреса запроса. Этот URL-адрес использует ранее созданную переменную endpoint для автоматической отправки в ресурс Служб связи.
На вкладке "Текст " запроса выберите необработанный элемент. В раскрывающемся списке справа выберите JSON.
Вы настроили запрос на отправку и получение информации в формате JSON.
В текстовой области введите текст запроса в следующем формате:
{
"from":"<Your Azure Communication Services Telephone Number>",
"message":"<The message you'd like to send>",
"smsRecipients": [
{
"to":"<The number you'd like to send the message to>"
}
]
}
from Для параметра необходимо получить номер телефона на портале служб коммуникации, как упоминалось ранее. Введите его без пробелов и префикса кода страны. Примером является +15555551234. Ваш message может быть чем угодно, что вы хотите отправить, но Hello from Azure Communication Services хороший пример. Значение to должно быть номером телефона, к которому у вас есть доступ, чтобы вы могли получать SMS-сообщения. Использование собственного мобильного телефона является хорошей идеей.
Сохраните этот запрос в созданной ранее коллекции служб коммуникации. Этот шаг гарантирует, что будут использованы переменные и скрипт предварительного запроса, который вы ранее создали. Нажмите кнопку "Сохранить " в правом верхнем углу области запроса.
Диалоговое окно, которое появляется, спрашивает вас, как вы хотите назвать запрос и где вы хотите его сохранить. Вы можете назвать его как угодно, но убедитесь, что в нижней половине диалогового окна выбрана вами коллекция служб связи.
Отправка запроса
Теперь, когда все настроено, вы можете отправить запрос и получить SMS-сообщение на телефоне. Чтобы выполнить этот шаг, убедитесь, что ваш запрос выбран, а затем нажмите кнопку "Отправить".
Если все прошло хорошо, вы увидите ответ от служб коммуникации, который является кодом состояния 202.
Мобильный телефон с номером, указанным в значении to, также получил SMS-сообщение. Теперь у вас есть функциональная конфигурация Postman, которая может взаимодействовать со службами коммуникации и отправлять SMS-сообщения.