Giới thiệu
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách gửi tin nhắn từ Appsheet sang Zalo. Appsheet là một nền tảng cho phép bạn tạo ứng dụng di động từ bảng tính Google Sheets, Excel và cơ sở dữ liệu SQL Server. Zalo là một ứng dụng nhắn tin phổ biến tại Việt Nam.
Bước 1: Tạo ứng dụng trên Appsheet
Đầu tiên, bạn cần tạo một ứng dụng trên Appsheet. Điều này có thể được thực hiện bằng cách truy cập vào trang web của Appsheet và nhấp vào nút “Start for free”. Sau đó, bạn sẽ được yêu cầu đăng nhập bằng tài khoản Google của mình.
Bước 2: Cài đặt Zalo API
Tiếp theo, bạn cần cài đặt Zalo API. Điều này có thể được thực hiện bằng cách truy cập vào trang web của Zalo và nhấp vào nút “API”. Sau đó, bạn sẽ được yêu cầu đăng nhập bằng tài khoản Zalo của mình.
const giaohang = SpreadsheetApp.getActiveSpreadsheet();
const ss = giaohang.getSheetByName("ZALO_OA");
//const refreshToken =ss.getRange('B3').getValue();
const token = ss.getRange('B3').getValue();
const url = 'https://openapi.zalo.me/v3.0/oa/message/cs';
//header zalo
const header = {
'access_token': token,
'Content-Type': 'application/json',
'Accept': 'application/json'
};
function getAccessToken() {
var giaohang = SpreadsheetApp.getActiveSpreadsheet();
var ss = giaohang.getSheetByName("ZALO_OA");
const refreshToken = ss.getRange('B2').getValue();
Logger.log(refreshToken);
const secretKey = '7BTPX1GfNiSDLTzBaJ38';
const appId = '4588125530582612968';
const url = 'https://oauth.zaloapp.com/v4/oa/access_token';
const body = {
'refresh_token': refreshToken,
'app_id': appId,
'grant_type': 'refresh_token'
}
const headers = {
'secret_key': secretKey
}
const params = {
'method': 'POST',
'Content-Type': 'application/x-www-form-urlencoded',
'payload': body,
'headers': headers
}
const response = JSON.parse(UrlFetchApp.fetch(url, params).getContentText());
const token = response["access_token"];
Logger.log(token);
const refresh = response['refresh_token'];
Logger.log(refresh);
ss.getRange('B3').setValue(response['access_token']);
ss.getRange('B2').setValue(response['refresh_token']);
}
function onEdit(e){
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("DON_HANG");
const range = sheet.getActiveRange();
const sheetName = sheet.getName();
const column = range.getColumn();
const row = range.getRow();
if (sheetName === "DON_HANG" && column === 1) {
const ma_hd = sheet.getRange(row, 1).getValues(); // Mã HĐ
const khach_hang = sheet.getRange(row, 4).getValues(); // Tên khách hàng
const ngay_dat_hd = Utilities.formatDate(sheet.getRange(row, 2).getValue(),"GMT+7","dd/MM/YYYY"); // Ngày đặt HĐ
const ngay_can_giao = Utilities.formatDate(sheet.getRange(row, 3).getValue(),"GMT+7","dd/MM/YYYY"); // Ngày đặt HĐ
const messagent =" [TB] CÓ HỢP ĐỒNG MỚI" + '\n' + "- Mã hợp đồng: " + ma_hd + '\n' + " - Tên khách hàng: " + khach_hang + '\n' + ngay_dat_hd + '\n' + ngay_can_giao + '\n'
Logger.log(messagent)
sendZaloMessage('7103621184509101583', messagent);
}
}
function processDataChanges() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Hợp đồng");
const range = sheet.getActiveRange();
const sheetName = sheet.getName();
const column = range.getColumn();
const row = range.getRow();
if (sheetName === "Hợp đồng" && column === 1) {
const ma_hd = sheet.getRange(row, 1).getValues(); // Mã HĐ
const khach_hang = sheet.getRange(row, 3).getValues(); // Tên khách hàng
const ngay_dat_hd = Utilities.formatDate(sheet.getRange(row, 7).getValue(),"GMT+7","dd/MM/YYYY"); // Ngày đặt HĐ
const ngay_chup = sheet.getRange(row, 8).getValues(); // Ngày chụp
const ngay_hoi = sheet.getRange(row, 9).getValues(); // Ngày hỏi
const ngay_cuoi = sheet.getRange(row, 10).getValues(); // Ngày cưới
const han_giao_hd = sheet.getRange(row, 11).getValues(); // Hạn giao HĐ
const thanh_tien = sheet.getRange(row, 12).getValues(); // Thành tiền
const khuyen_mai_dv = sheet.getRange(row, 13).getValues(); // Khuyến mãi DV
const giam_gia = sheet.getRange(row, 14).getValues(); // Giảm giá
const messagent =" [TB] CÓ HỢP ĐỒNG MỚI" + '\n' + "- Mã hợp đồng: " + ma_hd + '\n' + " - Tên khách hàng: " + khach_hang + '\n' +
" - Ngày đặt hợp đồng: " + ngay_dat_hd + '\n' + " - Ngày chụp: " + ngay_chup + '\n' + " - Ngày hỏi: " + ngay_hoi + '\n' + " - Ngày cưới: " + ngay_cuoi + '\n' + " - Hạn giao hợp đồng: " + han_giao_hd + '\n' + " - Thành tiền: " + thanh_tien + '\n' + " - Khuyến mãi dịch vụ: " + khuyen_mai_dv + '\n' + " - Giảm giá: " + giam_gia;
Logger.log(messagent)
sendZaloMessage('6713401403939781007', messagent);
sendZaloMessage('2346303166140981546', messagent);
}
}
function sendZaloMessage(user_id, text) {
var messageData = JSON.stringify({
'recipient': {
'user_id': user_id
},
'message': {
'text': text,
'template_type': 'promotion'
}
});
var options = {
'method': 'POST',
'payload': messageData,
'headers': {
'access_token': token,
'Content-Type': 'application/json',
'Accept': 'application/json'
},
'followRedirects': true
};
// UrlFetchApp.fetch(url, options);
Logger.log(UrlFetchApp.fetch(url, options));
}
Bước 3: Gửi tin nhắn từ Appsheet sang Zalo
Cuối cùng, bạn có thể gửi tin nhắn từ Appsheet sang Zalo. Điều này có thể được thực hiện bằng cách sử dụng API của Zalo. Bạn cần nhập mã API vào ứng dụng Appsheet của mình và sau đó bạn có thể gửi tin nhắn.
Link chi tiết các bạn có thể xem ở video phía dưới.

Giới thiệu
Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách gửi tin nhắn từ Appsheet sang Zalo. Appsheet là một nền tảng cho phép bạn tạo ứng dụng di động từ bảng tính Google Sheets, Excel và cơ sở dữ liệu SQL Server. Zalo là một ứng dụng nhắn tin phổ biến tại Việt Nam.
Bước 1: Tạo ứng dụng trên Appsheet
Đầu tiên, bạn cần tạo một ứng dụng trên Appsheet. Điều này có thể được thực hiện bằng cách truy cập vào trang web của Appsheet và nhấp vào nút “Start for free”. Sau đó, bạn sẽ được yêu cầu đăng nhập bằng tài khoản Google của mình.
Bước 2: Cài đặt Zalo API
Tiếp theo, bạn cần cài đặt Zalo API. Điều này có thể được thực hiện bằng cách truy cập vào trang web của Zalo và nhấp vào nút “API”. Sau đó, bạn sẽ được yêu cầu đăng nhập bằng tài khoản Zalo của mình.
const giaohang = SpreadsheetApp.getActiveSpreadsheet();
const ss = giaohang.getSheetByName("ZALO_OA");
//const refreshToken =ss.getRange('B3').getValue();
const token = ss.getRange('B3').getValue();
const url = 'https://openapi.zalo.me/v3.0/oa/message/cs';
//header zalo
const header = {
'access_token': token,
'Content-Type': 'application/json',
'Accept': 'application/json'
};
function getAccessToken() {
var giaohang = SpreadsheetApp.getActiveSpreadsheet();
var ss = giaohang.getSheetByName("ZALO_OA");
const refreshToken = ss.getRange('B2').getValue();
Logger.log(refreshToken);
const secretKey = '7BTPX1GfNiSDLTzBaJ38';
const appId = '4588125530582612968';
const url = 'https://oauth.zaloapp.com/v4/oa/access_token';
const body = {
'refresh_token': refreshToken,
'app_id': appId,
'grant_type': 'refresh_token'
}
const headers = {
'secret_key': secretKey
}
const params = {
'method': 'POST',
'Content-Type': 'application/x-www-form-urlencoded',
'payload': body,
'headers': headers
}
const response = JSON.parse(UrlFetchApp.fetch(url, params).getContentText());
const token = response["access_token"];
Logger.log(token);
const refresh = response['refresh_token'];
Logger.log(refresh);
ss.getRange('B3').setValue(response['access_token']);
ss.getRange('B2').setValue(response['refresh_token']);
}
function onEdit(e){
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("DON_HANG");
const range = sheet.getActiveRange();
const sheetName = sheet.getName();
const column = range.getColumn();
const row = range.getRow();
if (sheetName === "DON_HANG" && column === 1) {
const ma_hd = sheet.getRange(row, 1).getValues(); // Mã HĐ
const khach_hang = sheet.getRange(row, 4).getValues(); // Tên khách hàng
const ngay_dat_hd = Utilities.formatDate(sheet.getRange(row, 2).getValue(),"GMT+7","dd/MM/YYYY"); // Ngày đặt HĐ
const ngay_can_giao = Utilities.formatDate(sheet.getRange(row, 3).getValue(),"GMT+7","dd/MM/YYYY"); // Ngày đặt HĐ
const messagent =" [TB] CÓ HỢP ĐỒNG MỚI" + '\n' + "- Mã hợp đồng: " + ma_hd + '\n' + " - Tên khách hàng: " + khach_hang + '\n' + ngay_dat_hd + '\n' + ngay_can_giao + '\n'
Logger.log(messagent)
sendZaloMessage('7103621184509101583', messagent);
}
}
function processDataChanges() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("Hợp đồng");
const range = sheet.getActiveRange();
const sheetName = sheet.getName();
const column = range.getColumn();
const row = range.getRow();
if (sheetName === "Hợp đồng" && column === 1) {
const ma_hd = sheet.getRange(row, 1).getValues(); // Mã HĐ
const khach_hang = sheet.getRange(row, 3).getValues(); // Tên khách hàng
const ngay_dat_hd = Utilities.formatDate(sheet.getRange(row, 7).getValue(),"GMT+7","dd/MM/YYYY"); // Ngày đặt HĐ
const ngay_chup = sheet.getRange(row, 8).getValues(); // Ngày chụp
const ngay_hoi = sheet.getRange(row, 9).getValues(); // Ngày hỏi
const ngay_cuoi = sheet.getRange(row, 10).getValues(); // Ngày cưới
const han_giao_hd = sheet.getRange(row, 11).getValues(); // Hạn giao HĐ
const thanh_tien = sheet.getRange(row, 12).getValues(); // Thành tiền
const khuyen_mai_dv = sheet.getRange(row, 13).getValues(); // Khuyến mãi DV
const giam_gia = sheet.getRange(row, 14).getValues(); // Giảm giá
const messagent =" [TB] CÓ HỢP ĐỒNG MỚI" + '\n' + "- Mã hợp đồng: " + ma_hd + '\n' + " - Tên khách hàng: " + khach_hang + '\n' +
" - Ngày đặt hợp đồng: " + ngay_dat_hd + '\n' + " - Ngày chụp: " + ngay_chup + '\n' + " - Ngày hỏi: " + ngay_hoi + '\n' + " - Ngày cưới: " + ngay_cuoi + '\n' + " - Hạn giao hợp đồng: " + han_giao_hd + '\n' + " - Thành tiền: " + thanh_tien + '\n' + " - Khuyến mãi dịch vụ: " + khuyen_mai_dv + '\n' + " - Giảm giá: " + giam_gia;
Logger.log(messagent)
sendZaloMessage('6713401403939781007', messagent);
sendZaloMessage('2346303166140981546', messagent);
}
}
function sendZaloMessage(user_id, text) {
var messageData = JSON.stringify({
'recipient': {
'user_id': user_id
},
'message': {
'text': text,
'template_type': 'promotion'
}
});
var options = {
'method': 'POST',
'payload': messageData,
'headers': {
'access_token': token,
'Content-Type': 'application/json',
'Accept': 'application/json'
},
'followRedirects': true
};
// UrlFetchApp.fetch(url, options);
Logger.log(UrlFetchApp.fetch(url, options));
}
Bước 3: Gửi tin nhắn từ Appsheet sang Zalo
Cuối cùng, bạn có thể gửi tin nhắn từ Appsheet sang Zalo. Điều này có thể được thực hiện bằng cách sử dụng API của Zalo. Bạn cần nhập mã API vào ứng dụng Appsheet của mình và sau đó bạn có thể gửi tin nhắn.
Link chi tiết các bạn có thể xem ở video phía dưới.
Có tạo bình chọn tự động hàng ngày từ Appsheet vào 1 nhóm Zalo k ạ Ad?
Trả lờiXóa