python - 如何在谷歌应用脚本中更新 mailgun 路由
问题描述
我有一个 python 脚本,用于更新将多个操作参数传递给现有路由的 mailgun 路由。这工作正常,但我无法在 Google App Script 中重新创建它。当我传递一个动作参数时,一切正常,但在尝试传递多个参数时出现错误。
这也是路由更新的工作卷曲(api 密钥和路由 ID 已编辑):
curl -X PUT -H 'Accept: */*' -H 'Accept-Encoding: gzip, deflate' -H 'Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -H 'Connection: keep-alive'-H 'Content-Length: 63' -H 'Content-Type: application/x-www-form-urlencoded' -H 'User-Agent: python-requests/2.22.0' -d 'action=forward%28%22testing%40gmail.com%22%29&action=stop%28%29' https://api.mailgun.net/v3/routes/{routeID}
这是我目前在我的谷歌应用程序脚本中的内容。如果我用“address”或“stp”替换“multi”变量,这将起作用。
var address = "forward" + "(" + '"' + fwd + '"' + ")";
var stp = "stop()";
var multi = [address, stp]
var params = {
action: multi,
}
var base = "https://api.mailgun.net/v3/routes/";
var url = base + routeID
var options = {
"method": "put",
"payload": params,
"headers": {
Authorization: 'Basic ' + Utilities.base64Encode("api:" + MAILGUN_KEY)
}
};
我不确定为什么这在 Python 和 curl 中完美运行,但在谷歌脚本中却不行。
解决方案
弄清楚了:
var actions = "action=forward" + "(" + '"' + addr + '"' + ")" + "&action=stop()";
var base = "https://api.mailgun.net/v3/routes/";
var url = base + routeID
var options = {
"method": "put",
"payload": actions,
"Content-Type": "application/x-www-form-urlencoded",
"headers": {
Authorization: 'Basic ' + Utilities.base64Encode("api:" + MAILGUN_KEY)
}
};
推荐阅读
- objective-c - Objective-C 连续控制循环
- flutter - 我在向容器添加文本时遇到问题
- c++ - glfw 未定义的标识符
- python - 根据字符串匹配的熊猫子集行
- javascript - 如何在特定键之前返回数组中的所有数组项
- python - 使用带有列表理解的条件
- javascript - 尝试加载 LESS CSS 库时出现 GET ERR_FILE_NOT_FOUND 错误
- r - 将 scale_x_continuous 与 labeller 函数一起使用,该函数也将数据框作为参数以及默认中断
- python - 在python中将几个.csv合并为一个csv
- user-interface - Xamarin.Forms UI 没有响应