Ví dụ: giả sử nhà phát triển X có một ứng dụng web cho khách hàng của họ. Khách hàng đăng nhập vào ứng dụng bằng thông tin đăng nhập của riêng họ và có thể xem dữ liệu bán hàng cho nhiều cửa hàng. Mỗi khách hàng có quyền truy cập vào một danh sách cửa hàng riêng. Nhà phát triển muốn nhúng một trang tổng quan Data Studio vào ứng dụng của họ để khi khách hàng đăng nhập, khách hàng chỉ thấy dữ liệu bán hàng của những cửa hàng mà họ có quyền truy cập. Khách hàng không cần đăng nhập vào Tài khoản Google để quy trình này hoạt động.
Giải pháp được đề xuất sẽ yêu cầu nhà phát triển tạo một Trình kết nối cộng đồng, truyền mã thông báo qua URL nhúng, rồi lọc dữ liệu dựa trên mã thông báo.
Yêu cầu
- Người xem trang tổng quan sẽ đăng nhập vào ứng dụng bên thứ ba.
- Ứng dụng phải truyền một mã thông báo duy nhất đến trang tổng quan Data Studio thông qua URL nhúng. Bạn có thể dùng mã thông báo này để tra cứu thông tin bộ lọc hoặc mã hoá thông tin bộ lọc trong mã thông báo.
- Trình kết nối cộng đồng phải có thể chuyển đổi mã thông báo thành các giá trị bộ lọc.
Các điểm hạn chế
- Nếu là khách hàng G Suite và quản trị viên đã tắt chế độ chia sẻ tệp trên Drive cho "Bất kỳ ai có đường liên kết", thì bạn sẽ không thể chia sẻ báo cáo với người dùng bên ngoài tổ chức của mình.
Giải pháp
Hãy hoàn tất tất cả các bước sau để triển khai giải pháp.
Tạo mã thông báo người dùng trong ứng dụng web
Tạo một mã thông báo duy nhất cho mỗi người dùng đã đăng nhập trong ứng dụng web của bạn.Bạn sẽ truyền mã thông báo này đến trang tổng quan được nhúng ở bước sau.
Bạn nên sử dụng mã thông báo này để lọc dữ liệu có liên quan. Các lựa chọn bao gồm:
- Tạo một điểm cuối API trả về dữ liệu đã lọc hoặc thông tin người dùng cho một mã thông báo cụ thể.
- Mã hoá thông tin người dùng trong mã thông báo để sau này có thể giải mã trong trình kết nối.
Tạo một Trình kết nối cộng đồng mới
Xem Cách hoạt động của Trình kết nối cộng đồng và hoàn thành Lớp học lập trình về Trình kết nối cộng đồng để bắt đầu. Sử dụng Công cụ phát triển cục bộ để tạo trình kết nối để có quy trình phát triển nhanh chóng và dễ dàng hơn.
Viết mã trình kết nối
getConfig()phải trả về ít nhất một mục cấu hình. Thao tác này sẽ được dùng để thu thập mã thông báo từ các tham số của URL nhúng.function getConfig(request) { var cc = DataStudioApp.createCommunityConnector(); var config = cc.getConfig(); config .newTextInput() .setId('token') .setName('Enter user token'); // TODO: Add additional config values if applicable for your connector config.setDateRangeRequired(false); config.setIsSteppedConfig(false); return config.build(); }getData()sẽ có quyền truy cập vào mã thông báo thông qua đối tượngrequest.configParams. Sử dụng mã thông báo để tìm nạp dữ liệu đã lọc hoặc lọc dữ liệu đã tìm nạp hiện có.
Theo ví dụ trên, mã thông báo sẽ làrequest.configParams.token. TronggetData(), mã thông báo được truyền đến một điểm cuối REST API để lấy danh sách Mã nhận dạng cửa hàng. Sau đó, các Mã cửa hàng này được dùng để tạo truy vấn SQL nhằm tìm nạp dữ liệu bán hàng.var STORE_ID_API = 'https://www.example.com/api/storeid'; var QUERY_STRING_PREFIX = "SELECT StoreName, Sales from stores" function getData(request) { var token = request.configParams.token; var storeIds = getStoreIdList(token); var queryString = constructQueryString(storeIds); var fetchedData = fetchData(queryString); // rest of getData() implementation } function getStoreIdList(token) { var url = STORE_ID_API; var response = UrlFetchApp.fetch(url); var parsedResponse = JSON.parse(response); return parsedResponse.storeIds; } function constructQueryString(storeIds) { var storeIdString = storeIds.join(','); var queryString = QUERY_STRING_PREFIX + ' WHERE storeId in (' + storeIdString + ')'; return queryString; }
Tạo trang tổng quan
- Tìm hiểu cách hoạt động của các lượt triển khai và phiên bản đối với trình kết nối.
- Tạo một bản triển khai chính thức cho trình kết nối.
- Sử dụng đường liên kết Triển khai sản phẩm để tạo một nguồn dữ liệu và một báo cáo trong Data Studio.
- Đối với thông số cấu hình
token, hãy chọn Cho phép người xem báo cáo sửa đổi các giá trị thông số. - Chia sẻ trang tổng quan với người dùng đã chọn hoặc với "Bất kỳ ai có đường liên kết".
- Bật chế độ nhúng cho báo cáo.
Nhúng trang tổng quan vào nền tảng của bạn
- Tìm hiểu cách hoạt động của các tham số URL trong báo cáo.
- Truyền giá trị mã thông báo được tạo động bằng cách sử dụng các tham số URL vào báo cáo Data Studio được nhúng.
URL nhúng của bạn sẽ có dạng như sau:
`https://lookerstudio.google.com/embed/reporting/REPORT_ID/page/PAGE_ID?config=%7B%22ds0%22%3A%7B%22token%22%3A%22TOKEN_VALUE%22%7D%7D
Đề xuất
- Bạn nên tạo một mã thông báo tồn tại trong thời gian ngắn.
- Đảm bảo trang tổng quan không để lộ bất kỳ thông tin nào khi xem bằng mã thông báo không hợp lệ.