JavaScript용 Azure CommunicationMessages REST 클라이언트 라이브러리 - 버전 2.0.0
이 패키지에는 Azure Communication Messages Services용 JavaScript SDK가 포함되어 있습니다.
키 링크:
- 빠른 시작
시작
현재 지원되는 환경
필수 구성 요소
- 이 패키지를 사용하려면 Azure 구독 있어야 합니다.
- 기존 Communication Services 리소스입니다. 리소스를 만들어야 하는 경우
Azure Portal ,Azure PowerShell 또는 azure CLI사용할 수 있습니다. - Whatsapp business 계정을 등록하는 & Communication Services 리소스에 whatsapp 채널을 등록하기 위한 채널 만드는 방법을 참조하세요.
@azure-rest/communication-messages
패키지 설치
npm
사용하여 JavaScript용 Azure CommunicationMessages REST 클라이언트 REST 클라이언트 라이브러리를 설치합니다.
npm install @azure-rest/communication-messages
인증
Azure PortalCommunication Services 리소스에서 키 및/또는 연결 문자열을 가져올 수 있습니다. 키가 있으면 다음 방법 중 원하는 방법으로 인증할 수 있습니다.
연결 문자열 사용
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 관리 ID 사용
클라이언트 API 키 인증은 대부분의 예제에서 사용되지만 Azure Id 라이브러리사용하여 Azure Active Directory로 인증할 수도 있습니다. 아래에 표시된 DefaultAzureCredential 공급자 또는 Azure SDK와 함께 제공되는 다른 자격 증명 공급자를 사용하려면 @azure/identity
패키지를 설치하세요.
npm install @azure/identity
@azure/identity
패키지는 애플리케이션에서 이 작업을 수행하는 데 사용할 수 있는 다양한 자격 증명 유형을 제공합니다.
@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
설정합니다. 또는 @azure/logger
setLogLevel
호출하여 런타임에 로깅을 사용하도록 설정할 수 있습니다.
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
로그를 사용하도록 설정하는 방법에 대한 자세한 지침은 @azure/로거 패키지 문서확인할 수 있습니다.
다음 단계
이 라이브러리를 사용하는 방법에 대한 자세한 예제는 샘플 디렉터리를 살펴보세요.
기여
이 라이브러리에 기여하려면 기여 가이드 읽어 코드를 빌드하고 테스트하는 방법에 대해 자세히 알아보세요.
관련 프로젝트
- Javascript용 Microsoft Azure SDK
Azure SDK for JavaScript