Biblioteca de cliente REST do Azure CommunicationMessages para JavaScript – versão 1.0.1
Este pacote contém um SDK JavaScript para os Serviços de Mensagens de Comunicação do Azure.
Ligações principais:
Introdução
Ambientes atualmente suportados
Pré-requisitos
- Tem de ter uma subscrição do Azure para utilizar este pacote.
- Um recurso existente do Communication Services. Se precisar de criar o recurso, pode utilizar o Portal do Azure, o Azure PowerShell ou a CLI do Azure.
- Veja como registar a conta empresarial whatsapp & criar um canal para registar o canal whatsapp no recurso dos Serviços de Comunicação.
Instalar o pacote @azure-rest/communication-messages
Instale a biblioteca de cliente REST do cliente REST do Azure CommunicationMessages para JavaScript com npm
:
npm install @azure-rest/communication-messages
Autenticação
Pode obter uma chave e/ou cadeia de ligação a partir do recurso dos Serviços de Comunicação no portal do Azure. Assim que tiver uma chave, pode autenticar-se com qualquer um dos seguintes métodos:
Utilizar um cadeia de ligação
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);
Ao utilizar 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);
Utilizar a identidade gerida do Azure Active Directory
A autenticação da chave de API de cliente é utilizada na maioria dos exemplos, mas também pode autenticar com o Azure Active Directory com a biblioteca de Identidade do Azure. Para utilizar o fornecedor DefaultAzureCredential mostrado abaixo ou outros fornecedores de credenciais fornecidos com o SDK do Azure, instale o @azure/identity
pacote:
npm install @azure/identity
O @azure/identity
pacote fornece uma variedade de tipos de credenciais que a sua aplicação pode utilizar para o fazer. O README para @azure/identity fornece mais detalhes e exemplos para começar.
AZURE_CLIENT_SECRET, são necessárias variáveis de ambiente AZURE_CLIENT_ID e AZURE_TENANT_ID para criar um objeto DefaultAzureCredential.
import { DefaultAzureCredential } from "@azure/identity";
import MessageClient, { MessagesServiceClient } from "@azure-rest/communication-messages";
const endpoint = "https://<resource-name>.communication.azure.com";
let credential = new DefaultAzureCredential();
const client:MessagesServiceClient = MessageClient(endpoint, credential);
Enviar uma Mensagem de Modelo com o Canal do WhatsApp
Note: Business always starts the conversation with a template message.
Para enviar uma Mensagem de Modelo, precisa de adicionar um modelo à sua Conta do WhatsApp Bussiness. Para obter mais detalhes sobre o Modelo do WhatsApp, veja Criar e Gerir Modelos. No exemplo abaixo, estamos a utilizar
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");
}
Enviar uma Mensagem de Texto com o Canal do 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");
}
Enviar uma Mensagem de Multimédia com o Canal do 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");
}
Resolução de problemas
Registo
Ativar o registo pode ajudar a descobrir informações úteis sobre falhas. Para ver um registo de pedidos e respostas HTTP, defina a variável de AZURE_LOG_LEVEL
ambiente como info
. Em alternativa, o registo pode ser ativado no runtime ao chamar setLogLevel
no @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Para obter instruções mais detalhadas sobre como ativar os registos, pode ver os documentos do pacote @azure/logger.
Passos seguintes
Veja o diretório de exemplos para obter exemplos detalhados sobre como utilizar esta biblioteca.
Contribuir
Se quiser contribuir para esta biblioteca, leia o guia de contribuição para saber mais sobre como criar e testar o código.
Projetos relacionados
Azure SDK for JavaScript
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários