You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用AppScript提取Google表格URL中的code参数值

解决Google Sheets中获取Adobe Sign授权code的问题

问题原因

你之前的尝试失败是因为:

  • onOpen事件的e参数仅包含表格打开的上下文信息,不包含URL中的query参数,所以e.parameter是undefined,导致报错。
  • 手动通过菜单触发doGet函数时,不会传入HTTP请求的e参数,e本身是undefined,自然无法读取e.parameter。doGet仅在脚本作为Web App部署并被HTTP请求触发时才会接收带参数的e对象,但你的redirect_uri指向的是表格本身,不是Web App。

正确实现方式

通过解析当前表格的URL来提取code参数,步骤如下:

1. 添加触发菜单

修改onOpen函数,添加一个用于获取授权码的菜单项:

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('Document Control')
    .addItem('获取授权码', 'getAuthorizationCode')
    .addToUi();
}

2. 实现授权码解析函数

编写getAuthorizationCode函数,获取当前表格URL并解析code参数:

function getAuthorizationCode() {
  // 获取当前表格的完整URL
  const spreadsheetUrl = SpreadsheetApp.getActiveSpreadsheet().getUrl();
  // 解析URL中的查询参数
  const urlParams = new URL(spreadsheetUrl).searchParams;
  const code = urlParams.get('code');
  
  if (code) {
    // 成功获取到code,可根据需求处理(比如弹窗提示、写入表格)
    SpreadsheetApp.getUi().alert(`授权码已获取:${code}`);
    // 示例:将code写入当前工作表的A1单元格
    // SpreadsheetApp.getActiveSheet().getRange('A1').setValue(code);
  } else {
    SpreadsheetApp.getUi().alert('未检测到授权码,请确认已完成Adobe Sign授权跳转');
  }
}

3. 使用流程

  1. 触发Adobe Sign授权请求,用户完成授权后重定向回表格。
  2. 在表格的「Document Control」菜单中点击「获取授权码」。
  3. 函数会自动解析URL中的code参数,完成后续处理。

注意事项

  • 确保Adobe Sign的redirect_uri设置为表格的编辑URL(即用户实际打开的表格链接),保证重定向后的URL包含code参数。
  • 授权码具有时效性且只能使用一次,获取后请立即用于请求access token。

内容的提问来源于stack exchange,提问作者Katrina Trial

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:20:05