Azure CommunicationMessages REST-klientbibliotek för JavaScript – version 2.0.0
Det här paketet innehåller en JavaScript SDK för Azure Communication Messages Services.
Nyckellänkar:
Komma igång
Miljöer som stöds för närvarande
Förutsättningar
- Du måste ha en Azure-prenumeration för att kunna använda det här paketet.
- En befintlig Communication Services-resurs. Om du behöver skapa resursen kan du använda Azure Portal, Azure PowerShelleller Azure CLI-.
- Se hur du registrerar whatsapp business account & skapa en kanal för att registrera whatsapp channel till din Communication Services-resurs.
Installera @azure-rest/communication-messages
-paketet
Installera REST-klientbiblioteket för Rest-klienten i Azure CommunicationMessages för JavaScript med npm
:
npm install @azure-rest/communication-messages
Autentisering
Du kan hämta en nyckel och/eller anslutningssträng från din Communication Services-resurs i Azure-portalen. När du har en nyckel kan du autentisera med någon av följande metoder:
Använda en anslutningssträng
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);
Använda 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);
Använda Azure Active Directory-hanterad identitet
Nyckelautentisering för klient-API används i de flesta exempel, men du kan även autentisera med Azure Active Directory med hjälp av Azure Identity-biblioteket. Installera @azure/identity
-paketet om du vill använda DefaultAzureCredential- som visas nedan eller andra leverantörer av autentiseringsuppgifter som tillhandahålls med Azure SDK:
npm install @azure/identity
@azure/identity
-paketet innehåller en mängd olika typer av autentiseringsuppgifter som programmet kan använda för att göra detta. README för @azure/identity innehåller mer information och exempel för att komma igång.
AZURE_CLIENT_SECRET, AZURE_CLIENT_ID och AZURE_TENANT_ID miljövariabler krävs för att skapa ett DefaultAzureCredential-objekt.
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);
Skicka ett mallmeddelande med WhatsApp Channel
Note: Business always starts the conversation with a template message.
Om du vill skicka ett mallmeddelande behöver du lägga till mallen i ditt WhatsApp Bussiness-konto. Mer information om WhatsApp-mall finns i Skapa och hantera mallar. I exemplet nedan använder vi
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");
}
Skicka ett textmeddelande med WhatsApp Channel
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");
}
Skicka ett mediemeddelande med WhatsApp Channel
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");
}
Felsökning
Skogsavverkning
Aktivering av loggning kan hjälpa dig att hitta användbar information om fel. Om du vill se en logg med HTTP-begäranden och svar anger du AZURE_LOG_LEVEL
miljövariabeln till info
. Du kan också aktivera loggning vid körning genom att anropa setLogLevel
i @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Mer detaljerade anvisningar om hur du aktiverar loggar finns i @azure/logger-paketdokumenten.
Nästa steg
Ta en titt på exempel katalog för detaljerade exempel på hur du använder det här biblioteket.
Bidragande
Om du vill bidra till det här biblioteket kan du läsa bidragsguide för att lära dig mer om hur du skapar och testar koden.
Relaterade projekt
Azure SDK for JavaScript