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

如何在Google Apps Script中使用OAuth的signature_type='query'

将Python OAuth1(signature_type='query')转换为Google Apps Script实现

步骤1:导入OAuth1脚本到你的GAS项目

  • 打开Google Apps Script编辑器,点击左侧文件列表的+号,选择「脚本」并命名为OAuth1
  • 将指定的OAuth1.gs代码完整复制粘贴到该文件中,保存文件

步骤2:编写核心API调用代码

以下是对应你原Python脚本的GAS实现,替换占位符后即可运行:

// 替换为你的实际配置信息
const BASE_URL = '...';
const CLIENT_KEY = '...';
const CLIENT_SECRET = '...';

function getCredentialId() {
  // 初始化OAuth1客户端,指定签名类型为query参数
  const oauth1 = OAuth1.create(CLIENT_KEY, CLIENT_SECRET)
    .setSignatureMethod('HMAC-SHA1') // 匹配requests-oauthlib默认签名方法
    .setSignatureType('query'); // 关键:将签名放在URL查询参数中

  const targetUrl = BASE_URL + '/user/v2/credentials/';
  
  // 生成带OAuth签名的请求配置
  const signedRequest = oauth1.sign({
    method: 'GET',
    url: targetUrl
  });

  // 发送HTTP GET请求
  const response = UrlFetchApp.fetch(signedRequest.url, {
    method: signedRequest.method,
    headers: signedRequest.headers
  });

  // 解析响应并提取credentialId
  const content = JSON.parse(response.getContentText());
  const credentialId = content[0].id;
  
  // 输出结果到GAS日志
  Logger.log(credentialId);
  return credentialId;
}

关键说明

  1. 签名类型配置:setSignatureType('query')对应原Python中的signature_type="query",会将OAuth签名参数(如oauth_signature)直接追加到URL的查询字符串中
  2. 签名方法:默认使用HMAC-SHA1,与requests-oauthlib的默认配置一致,若API要求其他签名方法可调整此处
  3. 请求发送:oauth1.sign()方法会自动处理签名生成,返回的signedRequest.url已经包含所有必要的OAuth参数,直接用UrlFetchApp.fetch发送即可
  4. 结果查看:运行函数后,通过GAS编辑器的「查看」→「日志」查看credentialId的输出

注意事项

  • 确保复制的OAuth1.gs代码完整无误,不要随意修改该文件的内容
  • 若API需要额外请求头或参数,可在oauth1.sign()的参数对象中添加headers字段
  • 首次运行函数时,需要授权GAS使用UrlFetchApp服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:42:23