Pustaka klien Rest Azure CommunicationMessages untuk JavaScript - versi 1.0.1
Paket ini berisi JavaScript SDK untuk Azure Communication Messages Services.
Tautan utama:
Memulai
Lingkungan yang didukung saat ini
Prasyarat
- Anda harus memiliki langganan Azure untuk menggunakan paket ini.
- Sumber daya Communication Services yang ada. Jika Anda perlu membuat sumber daya, Anda dapat menggunakan Portal Microsoft Azure, Azure PowerShell, atau Azure CLI.
- Lihat cara mendaftarkan akun whatsapp business & membuat saluran untuk mendaftarkan saluran whatsapp ke sumber daya Communication Services Anda.
Pasang paket @azure-rest/communication-messages
Instal pustaka klien REST klien Azure CommunicationMessages REST untuk JavaScript dengan npm
:
npm install @azure-rest/communication-messages
Autentikasi
Anda bisa mendapatkan kunci dan/atau string koneksi dari sumber daya Communication Services Anda di Portal Microsoft Azure. Setelah memiliki kunci, Anda dapat mengautentikasi dengan salah satu metode berikut:
Menggunakan string koneksi
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);
Menggunakan 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);
Menggunakan identitas terkelola Azure Active Directory
Autentikasi kunci API klien digunakan di sebagian besar contoh, tetapi Anda juga dapat mengautentikasi dengan Azure Active Directory menggunakan pustaka Azure Identity. Untuk menggunakan penyedia DefaultAzureCredential yang ditunjukkan di bawah ini, atau penyedia kredensial lain yang disediakan dengan Azure SDK, harap instal @azure/identity
paket:
npm install @azure/identity
Paket ini @azure/identity
menyediakan berbagai jenis kredensial yang dapat digunakan aplikasi Anda untuk melakukan ini. README untuk @azure/identity memberikan detail dan sampel lebih lanjut untuk memulai Anda.
variabel lingkungan AZURE_CLIENT_SECRET, AZURE_CLIENT_ID, dan AZURE_TENANT_ID diperlukan untuk membuat objek 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);
Mengirim Pesan Templat dengan Saluran WhatsApp
Note: Business always starts the conversation with a template message.
Untuk mengirim Pesan Templat, Anda perlu menambahkan templat ke Akun WhatsApp Bussiness Anda. Untuk detail selengkapnya tentang Templat WhatsApp, lihat Membuat dan Mengelola Templat. Dalam contoh di bawah ini, kami menggunakan
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");
}
Mengirim Pesan Teks dengan Saluran 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");
}
Mengirim Pesan Media dengan Saluran 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");
}
Pemecahan Masalah
Pencatatan
Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL
ke info
. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel
di @azure/logger
:
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
Untuk instruksi lebih rinci tentang cara mengaktifkan log, Anda dapat melihat dokumen paket @azure/pencatat.
Langkah berikutnya
Silakan lihat direktori sampel untuk contoh terperinci tentang cara menggunakan pustaka ini.
Berkontribusi
Jika Anda ingin berkontribusi pada pustaka ini, baca panduan berkontribusi untuk mempelajari selengkapnya tentang cara membuat dan menguji kode.
Proyek terkait
Azure SDK for JavaScript