Клиентская библиотека REST Azure CommunicationMessages для JavaScript версии 2.0.0
Этот пакет содержит пакет SDK JavaScript для служб коммуникации Azure.
Ключевые ссылки:
- быстрого запуска
Начало работы
Поддерживаемые в настоящее время среды
Необходимые условия
- Для использования этого пакета необходимо подписку Azure.
- Существующий ресурс служб коммуникации. Если необходимо создать ресурс, можно использовать портал Azure, Azure PowerShellили Azure CLI.
- См. , как зарегистрировать учетную запись whatsapp business & создать канал для регистрации канала Whatsapp в ресурсе Служб коммуникации.
Установка пакета @azure-rest/communication-messages
Установите клиентскую клиентскую клиентскую библиотеку REST rest для Azure CommunicationMessages для JavaScript с npm
:
npm install @azure-rest/communication-messages
Аутентификация
Вы можете получить ключ и (или) строку подключения из ресурса Служб коммуникации в портала Azure. После получения ключа можно пройти проверку подлинности с помощью любого из следующих методов:
Использование строки подключения
import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";
const connectionString = `endpoint=https://<resource-name>.communication.azure.com/;accessKey=<Base64-Encoded-Key>`;
const client:MessagesServiceClient = MessageClient(connectionString);
Использование AzureKeyCredential
import { AzureKeyCredential } from "@azure/core-auth";
import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new AzureKeyCredential("<Base64-Encoded-Key>");
const client:MessagesServiceClient = MessageClient(endpoint, credential);
Использование управляемого удостоверения Azure Active Directory
Проверка подлинности ключа клиентского API используется в большинстве примеров, но вы также можете пройти проверку подлинности с помощью Azure Active Directory с помощью библиотеки удостоверений Azure. Чтобы использовать поставщик
npm install @azure/identity
Пакет @azure/identity
предоставляет различные типы учетных данных, которые приложение может использовать для этого. ReadME для @azure/identity содержит дополнительные сведения и примеры для начала работы.
AZURE_CLIENT_SECRET, AZURE_CLIENT_ID и переменные среды AZURE_TENANT_ID необходимы для создания объекта DefaultAzureCredential.
import { DefaultAzureCredential } from "@azure/identity";
import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";
const endpoint = "https://<resource-name>.communication.azure.com";
const credential = new DefaultAzureCredential();
const client:MessagesServiceClient = MessageClient(endpoint, credential);
Отправка сообщения шаблона с помощью Канала WhatsApp
Note: Business always starts the conversation with a template message.
Чтобы отправить сообщение шаблона, необходимо добавить шаблон в учетную запись WhatsApp Bussiness. Дополнительные сведения о шаблоне WhatsApp см. в статье Создание шаблонов и управление ими. В приведенном ниже примере мы используем
Template Name: sample_issue_resolution
Template Language: en_US
Template Body: "Hi {{1}}, were we able to solve the issue that you were facing?"
With Quick Action Button (Yes, No)
const nameValue:MessageTemplateValue = {
kind: "text",
name: "name",
text: "Arif"
};
const yesAction: MessageTemplateValue = {
kind: "quickAction",
name: "Yes",
payload: "Yes"
};
const noAction: MessageTemplateValue = {
kind: "quickAction",
name: "No",
payload: "No"
};
const templateBindings:MessageTemplateBindings = {
kind: "whatsApp",
body: [
{
refValue: "name"
}
],
buttons: [
{
subType: "quickReply",
refValue: "Yes"
},
{
subType: "quickReply",
refValue: "No"
}
]
};
const template:MessageTemplate = {
name: "sample_issue_resolution",
language: "en_US",
bindings: templateBindings,
values: [nameValue, yesAction, noAction]
};
const result = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: "<Channel_Registration_Id>",
to: ["<to-phone-number-1>"],
kind: "template",
template: template
}
});
if (result.status === "202") {
const response:Send202Response = result as Send202Response;
response.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Отправка текстового сообщения с помощью Канала WhatsApp
Note: Business can't start a conversation with a text message. It needs to be user initiated.
const result = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: "<Channel_Registration_Id>",
to: ["<to-phone-number-1>"],
kind: "text",
content: "Hello World!!"
}
});
if (result.status === "202") {
const response:Send202Response = result as Send202Response;
response.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Отправка сообщения мультимедиа с помощью Канала WhatsApp
Note: Business can't start a conversation with a media message. It needs to be user initiated.
const result = await client.path("/messages/notifications:send").post({
contentType: "application/json",
body: {
channelRegistrationId: "<Channel_Registration_Id>",
to: ["<to-phone-number-1>"],
kind: "image",
mediaUri: "https://<your-media-image-file>"
}
});
if (result.status === "202") {
const response:Send202Response = result as Send202Response;
response.body.receipts.forEach((receipt) => {
console.log("Message sent to:"+receipt.to+" with message id:"+receipt.messageId);
});
} else {
throw new Error("Failed to send message");
}
Устранение неполадок
Лесозаготовка
Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL
значение info
. Кроме того, ведение журнала можно включить во время выполнения путем вызова setLogLevel
в @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Дополнительные инструкции по включению журналов см. в документации по пакету @azure/loger.
Дальнейшие действия
Ознакомьтесь с примерами каталога, чтобы получить подробные примеры использования этой библиотеки.
Способствует
Если вы хотите внести свой вклад в эту библиотеку, ознакомьтесь с руководством по вкладу, чтобы узнать больше о том, как создавать и тестировать код.
Связанные проекты
Azure SDK for JavaScript