google-apps-script - Google 表格变量不起作用,硬编码字符串起作用
问题描述
我正在尝试使用 Google Sheets 自定义函数调用 http rest url。
这有效
function getProductDetailsbyEAN(EANCode) {
EANCode = '8901719255137'
if (EANCode == undefined) {
Logger.log("EANCode undefined") ;
return "undefined EANCode"
}
//EANCode = "'" + EANCode + "'"
Logger.log(EANCode)
var formData = {
'gtins': [EANCode],
};
Logger.log(formData.toString())
var options = {
'method' : 'post',
'headers' : { 'Authorization':'Bearer mysecuritycode', 'content-type': 'application/json' },
'payload' : JSON.stringify(formData)
};
var URL = "http://myurl"
var response = UrlFetchApp.fetch(URL, options);
response = response.toString() ;
if (response.indexOf("returned code 404") != -1) {
Logger.log("ResponseError");
Logger.log(response) ;
return "ResponseError" ;
}
var jsonResponse = JSON.parse(response) ;
var jsonResponseItems = jsonResponse['items']
var jsonResponseZerothItem = jsonResponseItems[0] ;
Logger.log(jsonResponseZerothItem) ;
return jsonResponseZerothItem ;
SpreadsheetApp.flush();
}
但是,如果我尝试通过它没有的参数使其工作,则返回 404
这不起作用
function getProductDetailsbyEAN(EANCode) {
//EANCode = '8901719255137'
if (EANCode == undefined) {
Logger.log("EANCode undefined") ;
return "undefined EANCode"
}
EANCode = "'" + EANCode + "'"
Logger.log(EANCode)
var formData = {
'gtins': [EANCode],
};
Logger.log(formData.toString())
var options = {
'method' : 'post',
'headers' : { 'Authorization':'Bearer myscuritycode', 'content-type': 'application/json' },
'payload' : JSON.stringify(formData)
};
var URL = "http://myurl"
var response = UrlFetchApp.fetch(URL, options);
response = response.toString() ;
if (response.indexOf("returned code 404") != -1) {
Logger.log("ResponseError");
Logger.log(response) ;
return "ResponseError" ;
}
var jsonResponse = JSON.parse(response) ;
var jsonResponseItems = jsonResponse['items']
var jsonResponseZerothItem = jsonResponseItems[0] ;
Logger.log(jsonResponseZerothItem) ;
return jsonResponseZerothItem ;
SpreadsheetApp.flush();
}
我错过了一些关于参数传递的非常基本的东西。请指教。
解决方案
我认为在您的情况下,似乎EANCode
需要将其用作字符串。那么这个改装怎么样呢?
请在您的问题中修改以下脚本,如下所示。
从:
EANCode = "'" + EANCode + "'"
至:
EANCode = EANCode.toString();
笔记:
8901719255137
小于Number.MAX_SAFE_INTEGER。9007199254740991
_ 所以我认为你可以使用.EANCode.toString()
- 根据您的问题,我无法确认调用的方法
getProductDetailsbyEAN(EANCode)
。所以如果上述修改不是直接的解决方案,你能提供调用脚本getProductDetailsbyEAN(EANCode)
吗?
参考:
如果我误解了您的问题并且这不是您想要的结果,我深表歉意。
推荐阅读
- python - AttributeError:使用flask-sqlalchemy连接到sqlite数据库时无法设置属性
- c++ - 编译器显示未初始化的临时变量
- ios - 协议“RawRepresentable”要求“init(rawValue:)”在 iOS 13.0.0 及更高版本中可用
- hadoop - 为什么即使我指定 WHERE date = 'YYYY-MM-DD',HIVE 也会扫描整个分区以查找 max(date)?
- spring-cloud - Spring Cloud 网关和 OAuth2 Jwt
- amazon-web-services - salt cmd.run 的执行如果是 CLI 与通过状态文件有不同的行为。有什么不同?
- r - 具有依赖关系的 R 脚本流
- javascript - Javascript - 是否可以使用类似于 setAttribute 的命令更改元素 innerHTML
- python - 如何用 tkinter 播放视频?
- node.js - MongoDB 查询以删除我的数据库中的对象的键