Dashboard
The Privé Show - Tập đoàn Đất Xanh | Ngày diễn ra: 09/05/2025
Tổng số khách mời
327
Đã gửi thiệp
185
Đang chờ xử lý
142
Lỗi xử lý
7
Tiến độ gửi thiệp mời
Tổng số
327
Đã gửi
185
Tỷ lệ
56.6%
Hoạt động gần đây
Gửi thiệp thành công
nguyen.van.a@datxanh.com.vn
15 phút trước
Gửi thiệp thành công
tran.thi.b@datxanh.com.vn
25 phút trước
Lỗi tạo QR code
pham.van.c@datxanh.com.vn
32 phút trước
Gửi thiệp thành công
le.thi.d@datxanh.com.vn
45 phút trước
Chờ xử lý
hoang.van.e@datxanh.com.vn
1 giờ trước
Cấu hình hệ thống
Thiết lập thông số kết nối để công cụ hoạt động đúng
Thông số cấu hình
Google Services
ID của Google Sheet chứa dữ liệu khách mời
Tên của sheet chứa dữ liệu (tab trong Google Sheet)
ID thư mục Google Drive để lưu thiệp mời
File JSON chứa thông tin xác thực Service Account
Email & SMTP
Mật khẩu app hoặc mật khẩu SMTP
Thiệp mời & Tham số ghép ảnh
Ảnh phôi thiệp mời làm nền
Thư mục lưu tệp tạm trong quá trình xử lý
Font chữ TTF để in lên thiệp
Tọa độ & kích thước chữ
Tọa độ & kích thước ảnh chân dung
Tọa độ & kích thước mã QR
Xem trước thiệp mời
Cài đặt thông số và nhấn "Xem trước" để hiển thị mẫu thiệp với các tham số
Kiểm tra kết nối
Logs
Nhật ký hoạt động của hệ thống
Tổng ghi chú
248Thành công
185Cảnh báo
56Lỗi
7| Thời gian | Thông điệp | Quy trình | Trạng thái | Thao tác | |
|---|---|---|---|---|---|
| 09/04/2023 15:42:18 | nguyen.van.a@datxanh.com.vn | Đã gửi email thành công | Gửi Email | Thành công | |
| 09/04/2023 15:41:52 | nguyen.van.a@datxanh.com.vn | Đã tải thiệp mời lên Google Drive thành công | Tải lên Drive | Thành công | |
| 09/04/2023 15:41:38 | nguyen.van.a@datxanh.com.vn | Đã tạo thiệp mời với ghép ảnh thành công | Xử lý ảnh | Thành công | |
| 09/04/2023 15:41:27 | nguyen.van.a@datxanh.com.vn | Đã tạo QR Code thành công | Tạo QR Code | Thành công | |
| 09/04/2023 15:41:15 | nguyen.van.a@datxanh.com.vn | Đã tải ảnh chân dung từ Google Drive | Xử lý ảnh | Thành công | |
| 09/04/2023 15:40:58 | tran.thi.b@datxanh.com.vn | Lỗi tại bước tạo QR Code: API không phản hồi | Tạo QR Code | Lỗi | |
| 09/04/2023 15:39:42 | tran.thi.b@datxanh.com.vn | Đã tải ảnh chân dung từ Google Drive | Xử lý ảnh | Thành công | |
| 09/04/2023 15:38:21 | pham.van.c@datxanh.com.vn | Thiếu thông tin chức vụ, đã tự động điền "N/A" | Đọc Sheet | Cảnh báo | |
| 09/04/2023 15:36:12 | le.thi.d@datxanh.com.vn | Đã gửi email thành công | Gửi Email | Thành công | |
| 09/04/2023 15:35:45 | hoang.van.e@datxanh.com.vn | Link ảnh chân dung không hợp lệ hoặc không truy cập được | Xử lý ảnh | Lỗi |
Trợ giúp
Hướng dẫn sử dụng và giải đáp thắc mắc
Câu hỏi thường gặp
Công cụ hoạt động theo 5 bước chính sau:
- Đọc dữ liệu khách mời từ Google Sheet được cấu hình.
- Tải ảnh chân dung từ link Google Drive và tạo mã QR chứa thông tin khách hàng.
- Ghép ảnh chân dung, mã QR, và thông tin khách mời lên phôi thiệp có sẵn để tạo thiệp mời cá nhân hóa.
- Tải thiệp mời lên Google Drive và tạo link chia sẻ.
- Gửi email chứa thiệp mời và link đến từng khách mời.
Mỗi bước đều có thể cấu hình thông qua trang Cài đặt.
Bạn cần chuẩn bị các tài nguyên sau:
- Google Sheet chứa dữ liệu khách mời với định dạng cột theo yêu cầu.
- Tạo Service Account Google để cấp quyền truy cập API.
- Thư mục Google Drive để lưu thiệp mời.
- Ảnh phôi thiệp mời (định dạng PNG/JPG).
- Thông tin kết nối SMTP để gửi email.
- Font chữ (.ttf) để in thông tin lên thiệp.
Tất cả đều được cấu hình trong mục "Cấu hình hệ thống".
Để tạo Service Account và lấy credentials, hãy làm theo các bước sau:
- Truy cập Google Cloud Console
- Tạo project mới (nếu chưa có)
- Bật Google Sheets API và Google Drive API
- Tạo Service Account trong mục "IAM & Admin" > "Service Accounts"
- Tạo khóa mới cho Service Account (JSON key)
- Tải xuống file JSON key và lưu vào thư mục "credentials"
- Chia sẻ Google Sheet và thư mục Google Drive với email của Service Account
Chi tiết hơn có thể xem trong phần "Hướng dẫn cài đặt".
Google Sheet cần có các cột sau (dựa theo chỉ mục từ 0):
- Cột B (Index 1): Địa chỉ email - Dùng làm tên file ảnh và email chia sẻ quyền xem
- Cột C (Index 2): HỌ VÀ TÊN - Tên khách mời
- Cột D (Index 3): EMAIL NHẬN THIỆP MỜI - Email người nhận thiệp
- Cột G (Index 6): CHỨC VỤ - Chức vụ khách mời
- Cột H (Index 7): ĐẠI LÝ - Đơn vị/Đại lý khách mời
- Cột I (Index 8): ẢNH CHÂN DUNG - Link Google Drive ảnh chân dung
- Cột L (Index 11): Trạng thái Gửi Email - Trạng thái xử lý
- Cột M (Index 12): Link Slide Thiệp Mời - Link thiệp đã tạo
Dòng đầu tiên nên là tiêu đề. Dữ liệu bắt đầu từ dòng thứ 2.
Khi gặp lỗi, bạn nên kiểm tra các điểm sau:
- Kiểm tra nhật ký lỗi trong mục "Logs" để xác định chính xác lỗi.
- Đảm bảo thông tin cấu hình đã chính xác (ID Google Sheet, Folder ID, Service Account).
- Xác minh rằng Service Account có quyền truy cập vào Google Sheet và thư mục Google Drive.
- Kiểm tra định dạng dữ liệu trong Google Sheet, đặc biệt là link ảnh chân dung.
- Đảm bảo thông tin SMTP để gửi email là chính xác và máy chủ SMTP không bị chặn.
- Kiểm tra PHP có đủ quyền truy cập và ghi vào thư mục temp.
- Xác minh extension php_gd đã được bật để xử lý hình ảnh.
Nếu vẫn gặp lỗi, hãy click nút "Báo cáo lỗi" ở cuối trang để nhận hỗ trợ.
Vấn đề kết nối API
Hướng dẫn khắc phục lỗi kết nối Google API
Lỗi xử lý hình ảnh
Giải pháp cho vấn đề xử lý ảnh chân dung và QR
Vấn đề gửi email
Khắc phục lỗi khi gửi email với SMTP
Vẫn chưa tìm thấy câu trả lời?
Liên hệ với đội ngũ hỗ trợ kỹ thuật để được trợ giúp.
Hướng dẫn cài đặt chi tiết
Yêu cầu hệ thống
Trước khi bắt đầu, hãy đảm bảo máy chủ web của bạn đáp ứng các yêu cầu sau:
- PHP 7.4 trở lên
- Extension php_gd đã được kích hoạt (để xử lý hình ảnh)
- Extension php_curl được kích hoạt (để kết nối API)
- Extension php_fileinfo được kích hoạt
- Extension php_openssl được kích hoạt (cho HTTPS và email bảo mật)
- Quyền ghi vào các thư mục temp/, logs/, và credentials/
- Kết nối internet ổn định
Tạo project Google Cloud & bật API
Để kết nối với Google API, bạn cần tạo project và bật các API cần thiết:
- Truy cập Google Cloud Console
- Tạo project mới hoặc chọn project hiện có
- Từ menu bên trái, chọn "APIs & Services" > "Library"
- Tìm và bật các API sau:
- Google Sheets API
- Google Drive API
Tạo Service Account và tải JSON key
- Trong Google Cloud Console, chọn "IAM & Admin" > "Service Accounts"
- Click "Create Service Account"
- Nhập tên Service Account (ví dụ: invitation-tool)
- Thêm role "Editor" hoặc các quyền riêng (Sheet, Drive)
- Click "Done" để tạo Service Account
- Từ danh sách Service Account, click vào account vừa tạo
- Chọn tab "Keys", sau đó click "Add Key" > "Create new key"
- Chọn định dạng JSON và click "Create"
- Tải về file JSON key và lưu vào thư mục "credentials/" với tên "google_service_account.json"
Lưu ý quan trọng: File JSON key chứa thông tin nhạy cảm. Đảm bảo file này được bảo mật và không tiết lộ cho bất kỳ ai.
Cấu hình Google Sheet và Drive
- Tạo Google Sheet mới hoặc sử dụng Sheet có sẵn với cấu trúc cột theo yêu cầu
- Chia sẻ Google Sheet với email của Service Account (role Editor)
- Lấy ID của Google Sheet từ URL (phần giữa "d/" và "/edit")
- Tạo thư mục trong Google Drive để lưu thiệp mời
- Chia sẻ thư mục với email của Service Account (role Editor)
- Lấy ID thư mục từ URL (phần sau "folders/")
Tải thư viện PHP
Tải về và cài đặt các thư viện PHP cần thiết:
Phương án 1: Cài đặt thủ công (Không dùng Composer)
- Tải PHPMailer (phiên bản mới nhất)
- Giải nén và copy thư mục src vào lib/PHPMailer
- Tải Google API Client Library
- Giải nén và copy nội dung vào lib/google-api-php-client
Phương án 2: Sử dụng Composer (Khuyến nghị)
- Cài đặt Composer từ getcomposer.org
- Mở terminal và di chuyển đến thư mục dự án
- Chạy lệnh:
composer require phpmailer/phpmailer google/apiclient:^2.0
Tạo file cấu hình
- Sao chép file config.php.example thành config.php
- Mở file config.php và cập nhật các thông số sau:
- GOOGLE_SHEET_ID: ID Google Sheet
- GOOGLE_DRIVE_FOLDER_ID: ID thư mục Drive
- TEMPLATE_IMAGE_PATH: Đường dẫn đến ảnh phôi thiệp
- SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD: Thông tin SMTP
- FROM_EMAIL, FROM_NAME: Thông tin người gửi
- Các tọa độ vị trí và kích thước của văn bản, ảnh chân dung, mã QR
Chạy công cụ
- Đặt phôi thiệp trong thư mục assets/images/
- Đảm bảo thư mục temp/ có quyền ghi
- Truy cập trang web và mở mục "Process Invites"
- Nhấn nút "Bắt đầu xử lý hàng loạt" để chạy công cụ
Công cụ sẽ tự động xử lý từng dòng trong Google Sheet, thông tin trạng thái sẽ hiển thị trên giao diện và được ghi lại trong mục Logs.
Xử lý sự cố cài đặt
- Nếu gặp lỗi "File credentials/google_service_account.json not found": Kiểm tra lại vị trí và tên file JSON key.
- Nếu gặp lỗi "Call to undefined function imagecreatefrompng()": PHP GD extension chưa được kích hoạt. Bật extension trong php.ini.
- Nếu gặp lỗi "Permission denied": Kiểm tra quyền ghi vào thư mục temp/ và logs/.
- Nếu gặp lỗi "Google API Error: Invalid Credentials": Kiểm tra lại việc chia sẻ quyền của Google Sheet và Drive với Service Account.
Tài liệu API
Google Sheets API
Google Sheets API được sử dụng để đọc và cập nhật dữ liệu khách mời. Dưới đây là các phương thức chính:
Đọc dữ liệu từ Google Sheet
$service = new Google_Service_Sheets($client);
$response = $service->spreadsheets_values->get(
$sheetId,
$range
);
Phương thức này đọc dữ liệu từ một Sheet và trả về mảng giá trị.
Cập nhật trạng thái
$updateBody = new Google_Service_Sheets_ValueRange([
'values' => [[$status]]
]);
$service->spreadsheets_values->update(
$sheetId,
$range,
$updateBody,
['valueInputOption' => 'RAW']
);
Phương thức này cập nhật trạng thái gửi email và link thiệp.
Tham khảo thêm: Google Sheets API Reference
Google Drive API
Google Drive API được sử dụng để tải lên thiệp mời và chia sẻ quyền truy cập:
Tải file lên Google Drive
$service = new Google_Service_Drive($client);
$fileMetadata = new Google_Service_Drive_DriveFile([
'name' => $fileName,
'parents' => [$folderId]
]);
$content = file_get_contents($filePath);
$file = $service->files->create($fileMetadata, [
'data' => $content,
'mimeType' => 'image/png',
'uploadType' => 'multipart'
]);
Chia sẻ quyền truy cập
$permission = new Google_Service_Drive_Permission([
'type' => 'user',
'role' => 'reader',
'emailAddress' => $email
]);
$service->permissions->create(
$fileId,
$permission,
['sendNotificationEmail' => false]
);
Lấy link chia sẻ
$driveLink = 'https://drive.google.com/file/d/' . $fileId . '/view';
Tham khảo thêm: Google Drive API Reference
QR Code API
API tạo mã QR từ goQR.me được sử dụng để tạo mã QR chứa thông tin khách mời:
Tạo QR Code
$data = json_encode([
'id' => $email,
'hoTen' => $name,
'chucVu' => $position,
'donVi' => $company,
'email' => $receiveEmail
]);
$encodedData = urlencode($data);
$url = "https://api.qrserver.com/v1/create-qr-code/?data={$encodedData}&size=250x250&ecc=H";
file_put_contents('temp/qrcode.png', file_get_contents($url));
Tham khảo thêm: goQR.me API Documentation
PHP GD Library
PHP GD Library được sử dụng để xử lý và ghép ảnh thiệp mời:
Ghép ảnh thiệp mời
// Mở ảnh phôi
$template = imagecreatefrompng($templatePath);
// Mở ảnh chân dung và QR code
$portrait = imagecreatefromjpeg($portraitPath);
$qrcode = imagecreatefrompng($qrcodePath);
// Tạo chuỗi text
$text = $name . ' - ' . $position . ' - ' . $company;
// Chèn text vào ảnh
imagettftext(
$template,
$config['TEXT_FONT_SIZE'],
0,
$config['INVITE_TEXT_COORDS'][0],
$config['INVITE_TEXT_COORDS'][1],
imagecolorallocate($template, $config['TEXT_COLOR'][0], $config['TEXT_COLOR'][1], $config['TEXT_COLOR'][2]),
$config['TEXT_FONT_PATH'],
$text
);
// Chèn ảnh chân dung
imagecopyresampled(
$template, $portrait,
$config['PORTRAIT_COORDS'][0], $config['PORTRAIT_COORDS'][1],
0, 0,
$config['PORTRAIT_SIZE'][0], $config['PORTRAIT_SIZE'][1],
imagesx($portrait), imagesy($portrait)
);
// Chèn QR code
imagecopyresampled(
$template, $qrcode,
$config['QRCODE_COORDS'][0], $config['QRCODE_COORDS'][1],
0, 0,
$config['QRCODE_SIZE'][0], $config['QRCODE_SIZE'][1],
imagesx($qrcode), imagesy($qrcode)
);
// Lưu ảnh kết quả
imagepng($template, $outputPath);
// Giải phóng bộ nhớ
imagedestroy($template);
imagedestroy($portrait);
imagedestroy($qrcode);
Tham khảo thêm: PHP GD Documentation
Tích hợp với hệ thống khác
Để tích hợp công cụ này với các hệ thống khác, bạn có thể:
- Chuyển đổi tool thành RESTful API bằng cách tạo endpoint xử lý riêng
- Tạo cron job để tự động xử lý theo lịch định sẵn
- Sử dụng webhook để kích hoạt xử lý khi có sự kiện từ hệ thống khác
- Tích hợp vào hệ thống CRM hoặc ERP hiện có thông qua các API chung
Video hướng dẫn
Thumbnail video hướng dẫn
Cài đặt và cấu hình ban đầu
Hướng dẫn chi tiết cách cài đặt và cấu hình công cụ từ đầu.
Thumbnail video hướng dẫn
Thiết lập Google Sheet và tạo phôi thiệp
Cách chuẩn bị Google Sheet và tạo phôi thiệp mời hiệu quả.
Thumbnail video hướng dẫn
Sử dụng công cụ tạo và gửi thiệp
Hướng dẫn quy trình tạo thiệp mời và gửi đến khách mời.
Thumbnail video hướng dẫn
Khắc phục sự cố thường gặp
Giải pháp cho các vấn đề phổ biến khi sử dụng công cụ.
Loạt bài hướng dẫn từng bước
Hướng dẫn đầy đủ từ A-Z
5 videoGiới thiệu và yêu cầu cài đặt
5:43 phútCài đặt và cấu hình Google API
8:20 phútThiết lập Google Sheet và ảnh phôi
7:15 phútChạy công cụ và xử lý hàng loạt
10:32 phútGiám sát, xử lý lỗi và báo cáo
9:18 phútĐăng ký nhận thông báo video mới
Được cập nhật khi có video hướng dẫn mới.