我使用React作爲前端,Rails後端。我有一系列我想要發送短信的電話號碼。如何在Rails上使用Twilio發送連續短信?
在前端,我有這樣的方法:
function postMessage(message, newWorkers){
let phoneArray = newWorkers.map((worker) => {return PhoneHelper.condensePhone(worker.phone)}) //condensePhone converts input to +1PHONENUMBER
for (var i = 0; i < phoneArray.length; i++){
return fetch(`text_it`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
message: message,
phone: phoneArray[i]
})
})
}
};
phoneArray
看起來像["1234567890", "1112223333", "2223334444"]
。我將發送相同的短信給所有這些號碼。
在後端,我有:
//routes
post '/text_it' => 'schedules#text_dat_message'
//schedules_controller
def text_dat_message
TwilioSender.new.send_it(params[:message], params[:phone])
end
我通過它發送給我的電話號碼兩次測試它,但是我只收到一個文本。然後我閱讀this SO post Twilio免費套餐(我現在免費試用)每秒消息1次。我安裝sidekiq
,並增加了工作人員送它在幾秒鐘內,
def text_dat_message
HardWorker.perform_in(10.seconds, params[:message], params[:phone]) #HardWorker does TwilioSender.new.send_it(args[0], args[1])
end
它仍然只給我一個單一的文本,當我試圖發送文本2-3到我的電話號碼。
我該如何更改我的代碼,以便將文本消息按順序發送到指定的號碼,並在中間插入5秒鐘的間隔?
編輯:
這是工作。邁克爾的回答給了我一個巨大的見解。問題似乎是,在10分鐘內,我幾乎從同一點開始關閉了10分鐘,並且Twilio的1個短信/秒限制無法工作。
我編輯我的陣營一面派,而不是通過它迭代一個電話陣列:
...
body: JSON.stringify({
message: message,
phones: phoneArray
})
,並在鐵軌上的一面,我知道我會被接收方的手機(和一個消息)的數組,所以我編輯我的控制器以跟隨韋斯利的回答。此外,我需要有手機的數組,所以我所做的:
phones = params[:phones]
phones.each_with_index ...
'HardWorker.perform_in(10.seconds'不知道,如果你延遲10秒鐘發生到這兩個消息和結果,他們幾乎一起發送? – wesley6j