用js写了一个批量发短信的脚本

可能的问题

Axios的POST请求主体默认是json,但api可能只接受x-www-form-urlencoded编码

一方面,header要添加content-type信息,另一方面,需要引入qs库,qs。stringify与json.stringify类似,但转换结果是queryString。

代码

let Axios = require('axios')
let Qs = require('qs')

function sendSMS(name, time, location, time2, phone) {
    let data = {
        "apikey": "密钥",
        "mobile": phone,
        "text": `短信模板`
    };
    let headers = {
        "Content-Type": "application/x-www-form-urlencoded"
    };
    Axios.post('https://sms.yunpian.com/v2/sms/batch_send.json',
        Qs.stringify(data), { headers }
    ).then(
        res => {
            console.log(res.data)
        }
    ).catch(
        err => {
            console.error(err)
        })
}



let fs= require('fs')
fs.readFile('/Users/guo/Documents/x.csv',function(err,data){
    if(err){
        console.error(err);
    }else{
        data.toString().split('\n').forEach(function(val){
            let [name,phone]=val.split(",").map(val=>val.trim())
            sendSMS(name,'13月31日15:20', 'DXa101', '13月30日12:00', phone)
        });
       
    }
})

数据格式

csv 可以从Excel导出,每一行格式 XX,XXX

发表评论

电子邮件地址不会被公开。