如何在Zendesk封闭环境下从非谷歌网站调用Google Apps Script
在Zendesk环境中调用Google Apps Script操作Google Sheet的解决方案
核心思路
通过将Google Apps Script部署为Web应用,让Zendesk前端可以通过HTTP请求触发脚本逻辑,最终跳转至目标表格。
步骤1:部署Apps Script为Web应用
- 打开你的Apps Script项目,点击右上角「部署」→「新部署」
- 类型选择「Web应用」
- 执行权限设置:根据需求选择「任何人,甚至匿名」(若需安全验证,后续可添加密钥校验)
- 点击「部署」,复制生成的Web应用URL(后续会用到)
步骤2:在Zendesk中添加触发交互
利用Zendesk的自定义HTML组件或Zendesk Apps Framework(ZAF)添加触发按钮/表单,示例前端代码如下:
// 假设你在Zendesk页面嵌入了一个ID为"open-target-sheet"的按钮 document.getElementById('open-target-sheet').addEventListener('click', () => { const targetData = '需要传递的特定数据'; // 替换为实际业务数据 const webAppUrl = '你的Web应用部署URL'; // 携带参数跳转至Web应用,由脚本处理后重定向到表格 window.open(`${webAppUrl}?data=${encodeURIComponent(targetData)}`, '_blank'); });
步骤3:修改Apps Script接收参数并处理
将你的现有函数适配为doGet(或doPost)函数,接收请求参数并返回表格跳转逻辑:
function doGet(e) { // 获取前端传递的特定数据 const specificData = e.parameter.data; // 调用你已实现的函数,生成目标表格的URL const targetSheetUrl = yourExistingFunction(specificData); // 直接重定向到目标表格 return HtmlService.createHtmlOutput(`<script>window.location.href="${targetSheetUrl}";</script>`); }
步骤4:安全加固(可选)
如果担心匿名访问的安全问题,可添加密钥校验:
function doGet(e) { const validKey = '你预设的安全密钥'; // 校验请求携带的密钥 if (e.parameter.key !== validKey) { return ContentService.createTextOutput('Unauthorized').setStatusCode(401); } // 后续处理逻辑同步骤3 const specificData = e.parameter.data; const targetSheetUrl = yourExistingFunction(specificData); return HtmlService.createHtmlOutput(`<script>window.location.href="${targetSheetUrl}";</script>`); }
此时前端请求需要携带密钥参数:${webAppUrl}?data=${encodeURIComponent(targetData)}&key=你的密钥
内容的提问来源于stack exchange,提问作者Eltros Nuke
相关产品推荐
相关产品推荐

