Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Tạo License cho template Blogger

Như chúng ta đã biết, các template cao cấp mà chúng ta thường gặp đều có giấy phép, tất nhiên mục đích là các template được tạo ra không bị lạm dụng bởi những người vô trách nhiệm, chẳng hạn như chia sẻ chúng miễn phí hoặc bán lại chúng mà người phát triển template không biết.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet
Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Đối với những bạn đang phát triển các template blogger và dự định bán chúng, sẽ rất tốt nếu bạn nên cài đặt giấy phép cho template bạn đã tạo trước khi bán nó để tránh những điều không mong muốn, do đó ở đây mình sẽ chia sẻ cách tạo một giấy phép template blogger với Google trang tính.

Google Sheets là gì?

  • Google Sheets là một trong những tính năng của Google Drive (dịch vụ lưu trữ trực tuyến không giới hạn) do công ty công nghệ Google phát triển.
  • Hầu hết công nhân và sinh viên có lẽ đã khá quen thuộc với các dịch vụ của Google Trang tính.
  • Biểu mẫu hoặc định dạng của bảng tính thực tế tương tự như Microsoft Excel, trong đó nó bao gồm các cột và hàng.
  • Nói chung bảng tính có thể được vận hành trực tuyến và cho phép người dùng chỉnh sửa tài liệu/tệp trong bảng tính bất cứ lúc nào và bất cứ nơi đâu.

Cách tạo Google Trang tính

Bạn phải có tài khoản Gmail. Nếu bạn chưa có, hãy tạo tài khoản Gmail trước khi sử dụng bảng tính.

Nếu bạn đã có tài khoản Gmail, bạn cũng có thể bắt đầu sử dụng bảng tính trực tuyến qua url: https://docs.google.com/spreadsheets. Trong trình duyệt của bạn, 'Bắt đầu một bảng tính mới' sẽ xuất hiện.

Nhấp vào 'Trống' ở cuối câu để tạo một bảng tính mới.

Bạn có thể chỉnh sửa Bảng tính Google bất cứ lúc nào và bất cứ nơi đâu. Mọi thay đổi dữ liệu sau mỗi lần gõ sẽ được lưu tự động.

Cách hoạt động của giấy phép

Trước khi chúng ta bắt đầu với hướng dẫn, mình sẽ thảo luận một chút về cách hoạt động của license mà chúng ta sẽ tạo sau này, và nói chung, các template được cấp phép sử dụng mã duy nhất do perUsers tạo và 1 license chỉ có thể được sử dụng cho 1 miền hoặc 1 blog và nếu bạn muốn cài đặt nó trên một miền khác thì mã cấp phép lại khác. Trong hầu hết các template được cấp phép sử dụng 'mã base64' như thế này: bGlzZW5zaXRlbXBsYXRla29kZWJh= và license có hiệu lực mãi mãi, nhà phát triển không có quyền truy cập để xóa license đã được cấp cho người dùng vì license không có cơ sở dữ liệu.

Và phương pháp mà mình sẽ chia sẻ ở đây thực sự giống như cách hoạt động, nhưng chỉ khác biệt là chúng ta có quyền truy cập để xóa license của người dùng vì chúng tôi sử dụng cơ sở dữ liệu Google Sheet sẽ chứa license của người dùng nên khi chúng ta xóa dữ liệu của người dùng trong bảng tính của chúng ta, người dùng trang web/blog sẽ được chuyển hướng đến trang web của chúng ta.

Được rồi, đó là tất cả sự khác biệt là ok, hãy bắt đầu với cách làm cho nó dưới đây.

Cách tạo license cho template Blogger với Google trang tính

Bước 1: Truy cập vào: https://drive.google.com

Hướng dẫn cách tạo License cho template Blogger với Google Sheet
Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Và tạo một bảng tính google mới bằng cách nhấp vào nút Mới > Google Trang Tính > Bảng Tính Trống.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Trang Tính1 (Sheet1) ở dưới cùng bên trái được đổi tên thành: users.

Và tạo tên trong cột A1 là: no, B1 là: id, C1 là: code.

Trên thanh trình đơn bạn nhấp chuột vào Tiện ích mở rộng > Apps script.

Bạn sẽ được dẫn đến một tab mới Dự án không có tiêu đề Google sẽ xuất hiện, và đặt tiêu đề tên gì bạn thích.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Chọn vào Mã.gs xóa tập lệnh mặc định khỏi tập lệnh google và thay thế bằng tập lệnh bên dưới.

function doGet(e){
  // Url cua Bang tinh
  var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1Zy7xh3PLNdwaOCzJs4eftDBDqi2ibMiUL5VbhQqtp7I/edit#gid=0");
  // Thay doi ten Trang tinh tai day
  var sheet = ss.getSheetByName("users");
  return getUsers(sheet);
  }
  function getUsers(sheet){
  var jo = {};
  var dataArray = [];
  // Lay cac hang tu trang tinh va doi ten trong ban ghi
  var rows = sheet.getRange(2,1,sheet.getLastRow()-1, sheet.getLastColumn()).getValues();
  for(var i = 0, l= rows.length; i<l ; i++){
  var dataRow = rows[i];
  var record = {};
  record['id'] = dataRow[1];
  record['code'] = dataRow[2];
  dataArray.push(record);
  }
  jo.user = dataArray;
  var result = JSON.stringify(jo);
  return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);
  }

Thay liên kết:
https://docs.google.com/spreadsheets/d/1tOCJ2WzeGmAtA8VD403TXb4Kybr7fZQbsrO7XedMa4g/edit#gid=0 bằng liên kết google sheet mà bạn đã tạo trước đó.

Lưu script.google bằng cách nhấp vào biểu tượng Lưu dự án và viết tên của trang tính, tùy thuộc vào bạn.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet
Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Sau đó chọn nút Triển khai > Tùy chọn triển khai mới > Chọn loại > Ứng dụng web.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Mô tả (điền số 1), Thực thi bằng tên Tôi (email@gmail.com), Người có quyền truy cập (Bất kỳ ai) và cuối cùng nhấn Triển khai.

Sau đó sẽ có cửa sổ bật lên Uỷ quyền truy cập mục đích là cho phép dự án của chúng tôi đọc, tạo và xóa tệp trên Google Drive.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Vì vậy, chúng ta chỉ cần nhấp vào tài khoản google, nhấn vào tiếp tục nhấp vào dòng chữ Đi tới Dự án không có tiêu đề (không an toàn) ở bên dưới nhấp vào cho phép.

Hướng dẫn cách tạo License cho template Blogger với Google Sheet
Hướng dẫn cách tạo License cho template Blogger với Google Sheet
Hướng dẫn cách tạo License cho template Blogger với Google Sheet
Hướng dẫn cách tạo License cho template Blogger với Google Sheet

Cuối cùng, sao chép liên kết mà bạn vừa tạo, sau này nó sẽ được sử dụng để lấy dữ liệu JOSN trong Google Trang tính của chúng tôi.

Giai đoạn thứ hai của việc tạo giấy phép trên Blogger

Ở giai đoạn này, bạn phải đảm bảo rằng trong mẫu sẽ tạo license đã có tập lệnh jQuery.

Vì dữ liệu sẽ được truy xuất bằng ajax, ở đây có hai ajax mà chúng ta phải tạo, đó là ajax từ nguồn cấp dữ liệu/bài viết/tóm tắt để truy xuất ID blog và ajax từ liên kết ứng dụng web google mà chúng ta vừa tạo để xác thực và khớp dữ liệu trong trang tính của google với blog ID và mã giấy phép.

Nếu blog chưa được cài đặt jQuery, vui lòng dán đoạn mã trên vào: </head>

<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>

Đăng nhập tài khoản blogger của bạn và đi tới Chủ đề > Chỉnh sửa HTML, sao chép và dán mã bên dưới và kết hợp nó với javascript trong mẫu của bạn.

var urlBlog = 'https://www.giahuy.net';
var license = $('#license-code').text();
var informasibatas = '<style>body{background:#fff}#peringatan span{font-size:50px}#peringatan{z-index:99999;position:fixed;top:0;right:0;left:0;height:30%;text-align:center;background:rgba(235, 0, 0, 1);border:5px solid #444;color:#fff;padding:20px;font-family:monospace;border-radius:10px}#peringatan h4{font-size:20px}</style><div id="peringatan"><h4>License activation</h4><p>Để có mã License bạn vui lòng liên hệ Admin www.giahuy.net | webgiahuy@gmail.com</p><span id="giahuy_dot_net">20</span></div>';
var input = 20;

$(document).ready(function() {
    var dataLicense = license.split('-');
    var codeLicense = dataLicense[0];
    var arrayLicense = dataLicense[1];
    console.log(codeLicense);
    console.log(arrayLicense);
    if (arrayLicense == undefined) {
        $(document.body).html(informasibatas);
        setInterval(function() {
            input <= 1 ? (window.location.href = urlBlog) : (document.getElementById("giahuy_dot_net").innerHTML = --input);
        }, 1e3);
    }
    str = [arrayLicense];
    $.ajax({
        url: "https://script.google.com/macros/s/AKfycbyKOvN6K31He4UlZrkuMaMmX1FeBw_3gkOf3z0Q2lgdo9A1tXLg2X59wVogujuV8JTEmA/exec",
        type: "GET",
        data: "users",
        crossDomain: true,
        dataType: "",
        success: function(data) {

            // Tim nap du lieu JSON tu Trang tinh cua nguoi dung Google
            var json = data.user;

            // Tim nap du lieu tu mang thu n
            var sheetLicense = json[str];
            console.log(sheetLicense)
            if (sheetLicense == undefined) {
                $(document.body).html(informasibatas);
                setInterval(function() {
                    input <= 1 ? (window.location.href = urlBlog) : (document.getElementById("giahuy_dot_net").innerHTML = --input);
                }, 1e3);
            }
            // Lay du lieu tu Trang tinh, co ID va Ma
            var ID = sheetLicense.id;
            var code = sheetLicense.code;
            // Truy xuat du lieu ID Blog bang Ajax
            $.ajax({
                url: "/feeds/posts/summary/?alt=json",
                type: "get",
                dataType: "jsonp",
                success: function(data) {
                    // Truy xuat ID blog tu tom tat bai đang cua blogger
                    var dataID = data.feed.id.$t;
                    console.log(dataID)

                    // The ket qua: blogger.com, 1999: blog-1480319877278940945, tat ca nhung gi chung ta can la ID nen chung ta can khai thac
                    var IDblog = dataID.split('-');

                    // Ket qua se co hai mang cu the la tag: blogger.com, 1999: blog va 1480319877278940945 ["tag: blogger.com, 1999: blog", "1480319877278940945"]
                    var blogID = IDblog[1];
                    try {
                        var input = 20,
                            dataInBlog = blogID + codeLicense,
                            dataInSheet = ID + code;
                        if (dataInBlog == dataInSheet) {
                            return;
                        }
                        $(document.body).html(informasibatas);
                        setInterval(function() {
                            input <= 1 ? (window.location.href = urlBlog) : (document.getElementById("giahuy_dot_net").innerHTML = --input);
                        }, 1e3);
                    } catch (input) {
                        window.location.href = urlBlog;
                    }
                },
            });
        },
    });
});

Để mã license không xuất hiện trên blog của chúng ta, hãy sử dụng CSS bên dưới.

#license-code{display:none!important}

Chú ý: Các bạn cần thay đổi những vị trí sau để chúng hoạt động tốt.
- Thay https://www.giahuy.net đổi thành URL blog của các bạn.
- Mục tiêu là nếu người dùng không nhập giấy phép, họ sẽ được chuyển hướng đến url đó. webgiahuy@gmail.com thay thế bằng email của bạn, điều này xuất hiện khi notif trước khi chuyển hướng đến blog chính.
https://script.google.com/macros/s/AKfycbxzsk6U0OSB672Pj65xn8vxoSWAAeF1ovqMpqpLiXPX8wSoOc78bU8pTuWmZ633BBRt/exec thay thế bằng liên kết Google Script mà bạn đã tạo trước đó trong bước đầu tiên.

Cách kích hoạt giấy phép cho người dùng

Nếu mọi thứ đã xong bây giờ chúng ta sẽ tạo license cho người dùng, ở đây bạn cần biết ID Blog trong mẫu mà license sẽ được cài đặt. Bạn có thể sử dụng Ctrl + U hoặc nhập view-source: https://www.domain.com và tìm mã như sau: {'blogId': '5432787597195842010', sao chép mã số ID Blog.

Sau đó vào bảng tính của bạn.
* Nhập ID Blog đã được sao chép trước đó vào cột phần id.
* Và nhập giấy phép vào cột code
* no để trống cột không cần điền vào.

Ví dụ: Tôi có 3 người dùng và mỗi người có một mã giấy phép khác nhau:

STT CODE License
1 GiaHuy GiaHuy-0
2 NhatNguyen NhatNguyen-1
3 HongNguyen HongNguyen-2

Chú ý!
Vì vậy khi bạn cấp giấy phép cho người dùng, nó phải được thêm -0, -1, -2, -3, v.v. Sau mã cấp phép mà bạn đã tạo. Và yêu cầu người dùng nhập giấy phép trong phần bố cục được gọi là giấy phép.

Trên đây là hướng dẫn cách tạo License cho template Blogger với Google Sheet. Nếu có bất cứ thắc mắc nào hãy comment ngay phía dưới cho mình biết nhé.
Chúc các bạn thành công và có một ngày làm việc thật hiệu quả!
Tôi là Nhật Nguyễn, một kỹ sư xây dựng. Nhưng thích tìm hiểu về mã nguồn lập trình web ☏.