เช่น สมมติว่านักพัฒนาแอป X มีเว็บแอปพลิเคชันสำหรับลูกค้า ลูกค้าจะเข้าสู่ระบบแอปโดยใช้ข้อมูลเข้าสู่ระบบของตนเองและดูข้อมูลการขาย สำหรับร้านค้าต่างๆ ได้ ลูกค้าแต่ละรายมีสิทธิ์เข้าถึงรายการร้านค้าที่แตกต่างกัน นักพัฒนาซอฟต์แวร์ต้องการฝังแดชบอร์ด Data Studio ในแอปพลิเคชันของตน เพื่อให้เมื่อ ไคลเอ็นต์เข้าสู่ระบบ ไคลเอ็นต์จะเห็นเฉพาะข้อมูลยอดขายของร้านค้าที่ตนมีสิทธิ์เข้าถึง ไคลเอ็นต์ไม่ควรต้องเข้าสู่ระบบบัญชี Google เพื่อให้กระบวนการนี้ทำงานได้
โซลูชันที่เสนอจะต้องให้นักพัฒนาซอฟต์แวร์สร้างเครื่องมือเชื่อมต่อชุมชน ส่งโทเค็นผ่าน URL การฝัง แล้วกรองข้อมูลตามโทเค็น
ข้อกำหนด
- ผู้ดูแดชบอร์ดจะเข้าสู่ระบบแอปพลิเคชันของบุคคลที่สาม
- แอปพลิเคชันควรส่งโทเค็นที่ไม่ซ้ำกันไปยังแดชบอร์ด Data Studio ผ่าน URL การฝัง โดยโทเค็นนี้จะใช้เพื่อค้นหาข้อมูลตัวกรอง หรือเข้ารหัสข้อมูลตัวกรองภายในก็ได้
- ปลั๊กอินจากชุมชนควรแปลงโทเค็นเป็นค่าตัวกรองได้
ข้อจำกัด
- หากคุณเป็นลูกค้า G Suite และผู้ดูแลระบบได้ปิดใช้การแชร์ไฟล์ในไดรฟ์เป็น "ทุกคนที่มีลิงก์" คุณจะแชร์รายงานกับผู้ใช้ภายนอกองค์กรไม่ได้
โซลูชัน
ทำตามขั้นตอนทั้งหมดต่อไปนี้เพื่อใช้โซลูชัน
สร้างโทเค็นผู้ใช้ในเว็บแอป
สร้างโทเค็นที่ไม่ซ้ำกันสำหรับผู้ใช้ที่เข้าสู่ระบบแต่ละรายในเว็บแอปพลิเคชันของคุณ โดยคุณจะ ส่งโทเค็นนี้ไปยังแดชบอร์ดที่ฝังในขั้นตอนต่อๆ ไป
คุณควรใช้โทเค็นเพื่อกรองข้อมูลที่เกี่ยวข้อง โดยมีตัวเลือกดังนี้
- สร้างปลายทาง API ที่ส่งคืนข้อมูลที่กรองแล้วหรือข้อมูลผู้ใช้สำหรับโทเค็นที่เฉพาะเจาะจง
- เข้ารหัสข้อมูลผู้ใช้ในโทเค็นเพื่อให้ถอดรหัสได้ในภายหลัง ในตัวเชื่อมต่อ
สร้างเครื่องมือเชื่อมต่อชุมชนใหม่
อ่านวิธีการทำงานของ Community Connector และทำCodelab ของ Community Connector ให้เสร็จสมบูรณ์เพื่อเริ่มต้นใช้งาน ใช้ เครื่องมือการพัฒนาในเครื่องสำหรับการสร้างตัวเชื่อมต่อเพื่อให้ กระบวนการพัฒนาเร็วขึ้นและง่ายขึ้น
เขียนโค้ดตัวเชื่อมต่อ
getConfig()ควรแสดงผลรายการการกำหนดค่าอย่างน้อย 1 รายการ ระบบจะใช้ฟังก์ชันนี้เพื่อ บันทึกโทเค็นจากพารามิเตอร์ของ URL ที่ฝัง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()จะมีสิทธิ์เข้าถึงโทเค็นผ่านออบเจ็กต์request.configParamsใช้โทเค็นเพื่อดึงข้อมูลที่กรองแล้วหรือ กรองข้อมูลที่ดึงมาแล้ว
จากตัวอย่างข้างต้น โทเค็นจะเป็นrequest.configParams.tokenในgetData()ระบบจะส่งโทเค็นไปยังปลายทาง REST API เพื่อรับรายการ Store ID จากนั้นระบบจะใช้รหัสร้านค้าเหล่านี้ เพื่อสร้างคําค้นหา SQL เพื่อดึงข้อมูลยอดขาย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; }
สร้างแดชบอร์ด
- ทําความเข้าใจวิธีการทํางานของการติดตั้งใช้งานและเวอร์ชันสําหรับตัวเชื่อมต่อ
- สร้างการติดตั้งใช้งานเวอร์ชันที่ใช้งานจริงสำหรับตัวเชื่อมต่อ
- ใช้ลิงก์การติดตั้งใช้งานเวอร์ชันที่ใช้งานจริงเพื่อสร้างแหล่งข้อมูลและรายงานใน Data Studio
- สำหรับ
tokenพารามิเตอร์การกำหนดค่า อนุญาตให้ผู้ดูรายงานแก้ไขค่าพารามิเตอร์ - แชร์แดชบอร์ดกับผู้ใช้ที่เลือกหรือกับ "ทุกคนที่มีลิงก์"
- เปิดใช้การฝังสำหรับรายงาน
ฝังแดชบอร์ดในแพลตฟอร์ม
- ทําความเข้าใจวิธีการทํางานของพารามิเตอร์ของ URL รายงาน
- ส่งค่าโทเค็นที่สร้างแบบไดนามิกโดยใช้พารามิเตอร์ URL ไปยัง
รายงาน Data Studio ที่ฝัง
URL ที่ฝังจะมีลักษณะคล้ายกับตัวอย่างต่อไปนี้
`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
คำแนะนำ
- คุณควรสร้างโทเค็นอายุสั้น
- ตรวจสอบว่าแดชบอร์ดไม่ได้เปิดเผยข้อมูลใดๆ ที่ดูด้วยโทเค็นที่ไม่ถูกต้อง