首页 > 解决方案 > Twilio:使用 Node.js 从特定数量的日志中统计 SMS 消息的数量

问题描述

我正在尝试在 Node.js 中编写一个 Twilio 服务器端函数(https://console.twilio.com/us1/develop/functions/classic)来计算来自任何发件人的传入消息的数量。

如果数字 = 0,则执行 X。

如果数字 > 0,则执行 Y。

显然,下面的代码不起作用,甚至可能会非常糟糕。生成的错误消息是:"{"message":"username is required","name":"Error","stack":"Error: username is required\n at new Twilio (/var/task/node_modules/twilio /lib/rest/Twilio.js:141:11)"

感谢任何帮助。谢谢!

exports.handler = function(context, event, callback) {
    // 
    const accountSid = process.env.TWILIO_ACCOUNT_SID;
    const authToken = process.env.TWILIO_AUTH_TOKEN;
    const client = require('twilio')(accountSid, authToken);
    //
    //const Phone = event.Phone;
    
    client.messages
          .list({
             from: event.Phone
           })
          .then(messages => messages.forEach(m => console.log(m.sid)));
    //
    if(messages.length === 0)
    {
        return callback(null,"Continue");
    } else {
        //
        return callback("Error","Error");
    }
};

标签: node.jsloggingtwiliosms

解决方案


来自 Twilio 支持,这与 Phil 的回答一致:

exports.handler = function(context, event, callback) {
 // Make sure under the Functions Global Config tab:
 // "Add my Twilio Credentials (ACCOUNT_SID) and (AUTH_TOKEN) to ENV" is CHECKED
 const client = context.getTwilioClient();
 
 const phoneNumber = event.From_Number;

 client.messages
    .list({ from: phoneNumber, limit:20 })
    .then((result) => {
    console.log(result.length);
    return callback(null, result);
 })
    .catch((error) => {
    console.error(error);
    return callback(error, null);
 });
};

推荐阅读