调用Clearbit API时出现UrlFetchApp.fetch参数不匹配异常,求解析
错误原因及修复方案
错误原因
你调用UrlFetchApp.fetch()时传入了3个参数(URL、header对象、options对象),但该方法的正确签名是仅接受两个参数:第一个是请求URL字符串,第二个是包含所有请求配置的单个选项对象。参数数量与方法要求不匹配,因此触发了这个异常。
修复方法
把header里的配置(请求方法、授权头)和options里的muteHttpExceptions合并到同一个对象中,作为第二个参数传入fetch()即可。
修正后的代码示例:
function linkedInUrl(domain) { let url = `https://company.clearbit.com/v2/companies/find?domain=${domain}` const api_keys = "" // 合并所有请求配置到单个options对象 const options = { method: 'GET', headers: {'Authorization':'Bearer ' + api_keys}, muteHttpExceptions: true } var response = UrlFetchApp.fetch(url, options) var data = JSON.parse(response.getContentText()) return "https://www.linkedin.com/"+data.linkedin.handle } function techUsed(domain) { let url = `https://company.clearbit.com/v2/companies/find?domain=${domain}` const api_keys = "" // 合并所有请求配置到单个options对象 const options = { method: 'GET', headers: {'Authorization':'Bearer ' + api_keys}, muteHttpExceptions: true } var response = UrlFetchApp.fetch(url, options) var data = JSON.parse(response.getContentText()) tech = "" for(let i = 0; i < data.tech.length; i++) { tech += data.tech[i] +"," } return tech }
额外提醒:你当前api_keys是空字符串,调用Clearbit API时需要填入有效的API密钥,否则会返回权限相关错误。
内容的提问来源于stack exchange,提问作者Mohamed Necib
相关产品推荐
相关产品推荐

