我有一个函数和一些辅助函数,它们应该访问 Slack 消息历史记录并返回与某个数字字符串匹配的第一条消息。
我已经在我的计算机的 Node.js 环境中对代码进行了广泛的测试,以验证它的工作原理和正确性。但是,我无法让它在 Twilio Function 的运行时环境中工作;我不断收到错误“函数声明中缺少名称。”,并且该函数将无法正确链接或根本无法像函数一样工作。
我究竟做错了什么?
exports.handler = function(context, event, callback) {
if(event.event){
if(event.event.channel == context.CHANNEL_ID){
if(event.event.subtype){
console.log("bot posting");
if(event.event.thread_ts){
console.log("bot posting in thread");
console.log(event);
}
else{
console.log("bot posting in channel");
console.log(event);
}
}
else{
console.log("staff posting");
if(event.event.thread_ts){
console.log("staff posting in thread");
console.log(event);
}
else{
console.log("staff posting in channel");
console.log(event);
}
}
}
}
else{
console.log("incoming sms message");
console.log(typeof event.From);
}
returnTS("6049248010").then(function (ts) {
console.log(ts);
});
callback(null);
};
var getSlackHistory = async function (ts) {
try {
var response;
if (typeof ts === 'undefined') {
response = await got('https://slack.com/api/channels.history?'
+ 'token=' + context.TWILIO_TOKEN
+ '&channel=' + context.TWILIO_CHANNEL_ID);
}
else {
response = await got('https://slack.com/api/channels.history?'
+ 'token=' + context.TWILIO_TOKEN
+ '&channel=' + context.TWILIO_CHANNEL_ID
+ '&latest=' + ts);
}
return await JSON.parse(response.body);
}
catch (error) { console.log("failure"); }
}
var getAllSlackHistory = async function () {
var message_history = [];
try {
var response = await getSlackHistory();
// console.log(response.messages[response.messages.length - 1].ts);
for (var i = 0; i < response.messages.length; i++) {
message_history.push(response.messages[i]);
}
while (response.has_more) {
response = await getSlackHistory(response.messages[response.messages.length - 1].ts);
for (var i = 0; i < response.messages.length; i++) {
message_history.push(response.messages[i]);
}
}
return await message_history;
}
catch (error) {
console.log(error);
}
}
var returnTS = async function (numberString) {
try {
var message_history = await getAllSlackHistory();
//console.log(message_history.length);
// console.log(numberString);
for (var i = 0; i < message_history.length; i++) {
// console.log(message_history[i].text);
// console.log(message_history[i].text.includes(numberString));
if (message_history[i].text.includes(numberString))
// console.log(message_history[i].ts);
return message_history[i].ts;
}
}
catch (error) {
console.log(error);
}
}