JavaScript için Azure CommunicationMessages REST istemci kitaplığı - sürüm 1.0.1
Bu paket, Azure İletişim İletileri Hizmetleri için bir JavaScript SDK'sı içerir.
Önemli bağlantılar:
Başlarken
Şu anda desteklenen ortamlar
Önkoşullar
- Bu paketi kullanmak için bir Azure aboneliğiniz olmalıdır.
- Mevcut bir İletişim Hizmetleri kaynağı. Kaynağı oluşturmanız gerekiyorsa Azure Portalı, Azure PowerShell veya Azure CLI'yı kullanabilirsiniz.
- whatsapp kanalını İletişim Hizmetleri kaynağınıza kaydetmek için bir kanal oluşturmak & whatsapp business hesabını kaydetmeyi öğrenin.
@azure-rest/communication-messages
paketini yükleyin
ile npm
JavaScript için Azure CommunicationMessages REST istemcisi REST istemci kitaplığını yükleyin:
npm install @azure-rest/communication-messages
Kimlik Doğrulaması
Azure Portal'daki İletişim Hizmetleri kaynağınızdan bir anahtar ve/veya bağlantı dizesi alabilirsiniz. Bir anahtarınız olduğunda, aşağıdaki yöntemlerden herhangi biriyle kimlik doğrulaması yapabilirsiniz:
bağlantı dizesi kullanma
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
kullanma
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 yönetilen kimliğini kullanma
İstemci API anahtarı kimlik doğrulaması örneklerin çoğunda kullanılır, ancak Azure Kimlik kitaplığını kullanarak Azure Active Directory ile de kimlik doğrulaması yapabilirsiniz. Aşağıda gösterilen DefaultAzureCredential sağlayıcısını veya Azure SDK ile sağlanan diğer kimlik bilgisi sağlayıcılarını kullanmak için lütfen paketi yükleyin @azure/identity
:
npm install @azure/identity
Paket, @azure/identity
uygulamanızın bunu yapmak için kullanabileceği çeşitli kimlik bilgileri türleri sağlar. için README, başlamanız için @azure/identity daha fazla ayrıntı ve örnek sağlar.
DefaultAzureCredential nesnesi oluşturmak için AZURE_CLIENT_SECRET, AZURE_CLIENT_ID ve AZURE_TENANT_ID ortam değişkenleri gerekir.
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);
WhatsApp Kanalı ile Şablon İletisi Gönderme
Note: Business always starts the conversation with a template message.
Şablon İletisi göndermek için WhatsApp Bussiness Hesabınıza şablon eklemeniz gerekir. WhatsApp Şablonu hakkında daha fazla ayrıntı için bkz. Şablon Oluşturma ve Yönetme. Aşağıdaki örnekte,
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 Kanalı ile Kısa Mesaj Gönderme
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 Kanalı ile Medya İletisi Gönderme
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");
}
Sorun giderme
Günlüğe Kaydetme
Günlüğe kaydetmenin etkinleştirilmesi hatalarla ilgili yararlı bilgilerin ortaya çıkarılmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL
olarak info
ayarlayın. Alternatif olarak, günlüğü çalışma zamanında içinde çağrılarak setLogLevel
@azure/logger
etkinleştirilebilir:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Günlükleri etkinleştirme hakkında daha ayrıntılı yönergeler için @azure/günlükçü paketi belgelerine bakabilirsiniz.
Sonraki adımlar
Bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen samples dizinine göz atın.
Katkıda bulunma
Bu kitaplığa katkıda bulunmak isterseniz, kodu derleme ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzunu okuyun.
İlgili projeler
Azure SDK for JavaScript