私は、緊急時に 1 つのメッセージをグループに送信する一括 SMS アプリケーションに取り組んでいます。Twilio Docsを確認してコードを実装したところ、API から 429 エラーが発生しました。そのため、それを防ぐために指数バックオフ コードを追加しましたが、スクリプトを実行すると、配列にリストされている 2 番目の番号にしか送信されません。
const accountSid = '[ACCOUNT SID]';
const authToken = '[AUTH TOKEN]';
const client = require('twilio')(accountSid, authToken);
var numbersToMessage = ["+1800XXXXXXX", "+1888XXXXXXX"]
numbersToMessage.forEach(function(number){
var message = client.messages.create({
body: 'This is test #2 from August 21, 2020.',
from: '[TWILIO SENDER NUMBER]',
statusCallback: '[PIPEDREAM API URL]',
to: number
})
.then(message => console.log(message.status))
return((err) => {
// assumes that the error is "request made too soon"
backoffTime *= 2;
i--;
console.log(err);
return delay(backoffTime);
});
done();
});
指数バックオフは私にとってまったく新しいものなので、そこに問題があると確信していますが、それは私が知る限りです。npm パッケージexponential-backoffも使用してみましたが、運がありませんでした。