如何在3Commas Webhook消息中添加syminfo.currency与syminfo.basecurrency
解决3Commas Webhook告警动态填充带引号交易对的问题
问题说明
配置3Commas Webhook告警时,需要将syminfo.currency和syminfo.basecurrency拼接为带引号的交易对(如"USDT_BTC")填入请求的pair字段。手动写死交易对可正常运行,但切换交易对或新增告警场景时需反复修改代码,效率低下。尝试动态拼接变量时,给变量添加引号后,告警消息会直接显示' + syminfo.currency + "_" + syminfo.basecurrency + '文本,而非解析后的交易对值,目前已解决下划线拼接问题,但无法为动态生成的交易对添加正确引号。
原始代码示例
// 手动写死交易对(可行) alert('{ "message_type": "bot", "bot_id": XXXXXX, "email_token": "XXXXXX XXXXX XXXXX XXXX", "delay_seconds": 0, "pair": "USDT_BTC" }', freq = alertFreq) // 动态拼接失败的写法 alert('{ "message_type": "bot", "bot_id": XXXXXX, "email_token": "XXXXXX XXXXX XXXXX XXXX", "delay_seconds": 0, "pair": ' + syminfo.currency + "_" + syminfo.basecurrency + ' }', freq = alertFreq)
解决方案
核心是将引号作为字符串的一部分参与拼接,而非放在拼接代码的外侧。以下两种写法均可实现需求:
写法一:利用双引号(外层用单引号,内部双引号无需转义)
alert('{ "message_type": "bot", "bot_id": XXXXXX, "email_token": "XXXXXX XXXXX XXXXX XXXX", "delay_seconds": 0, "pair": "' + syminfo.currency + '_' + syminfo.basecurrency + '" }', freq = alertFreq)
写法二:转义单引号(若偏好使用单引号包裹交易对)
alert('{ "message_type": "bot", "bot_id": XXXXXX, "email_token": "XXXXXX XXXXX XXXXX XXXX", "delay_seconds": 0, "pair": \'' + syminfo.currency + '_' + syminfo.basecurrency + '\' }', freq = alertFreq)
原理说明
错误写法中,引号被放在了字符串拼接的边界,导致拼接代码被直接当作文本输出。修正后,引号作为字符串片段("'或\'')与变量拼接,最终生成的JSON中pair字段会包含正确的引号,同时syminfo.currency和syminfo.basecurrency会被解析为当前图表的交易对值,实现切换交易对时自动填充的效果。
内容的提问来源于stack exchange,提问作者Juz
相关产品推荐
相关产品推荐

