Да сделан он уже давно. К WB нет никаких претензий.
У меня оповещения в Max уже сделаны. Просто хочется не костыль свой использовать на устройствах, а так скажем “заводскую официальную” фичу.
/etc/wb-rules-modules/custom_notify.js
exports.sendMaxMessage = function(token, chatId, text) {
log('sending max message: {}', text);
chatId = chatId.toString();
queryParam = (chatId[0] == "-") ? "chat_id" : "user_id";
runShellCommand(
"curl -s -X POST https://platform-api.max.ru/messages?{}={} -H 'Content-Type: application/json' -H 'Authorization: {}' -d @-".format(queryParam, chatId, token),
{
captureErrorOutput: true,
captureOutput: true,
input: '{"text": "{}"}'.format(text),
exitCallback: function exitCallback(exitCode, capturedOutput, capturedErrorOutput) {
if (exitCode != 0)
log.error(
'error sending max message:\n{}\n{}',
capturedOutput,
capturedErrorOutput
);
try {
var response = JSON.parse(capturedOutput);
if (!response.message.timestamp)
log.error(
'error sending max message:\n{} {}',
response.code,
response.message
);
} catch (e) {
log.error('error parsing response: {}', e);
}
},
}
);
};
В скриптах подключаем и пользуемся по аналогии с заводским Notify.sendTelegramMessage…
var CustomNotify = require("custom_notify");
...
CustomNotify.sendMaxMessage("token", "chatId", "text");