要避免 Amazon SNS 发送短信消息时遇到的限制,可以尝试以下几种方法:
尽可能地使用字符消息替换纯文本消息。每条短信消息可以传递的字符数是有限的,所以通过使用字符消息替换纯文本消息可以在不增加题材的情况下传递更多的消息。
如果必须要使用纯文本消息,请确保尽可能地减小消息大小。可以通过缩短消息文本、删除不必要的空格、使用缩写或简写方式减小消息大小。
尝试通过分块发送多条短信消息的方式解决问题。Amazon SNS 允许将长消息分割成多个 160 字符块,并将每个块视为一条独立的消息发送。
示例代码:
// 发送字符消息的示例代码 var sns = new AWS.SNS({ region: 'us-east-1' });
sns.publish({ Message: 'Hello World!', TopicArn: 'arn:aws:sns:us-east-1:123456789012:myTopic' }, function(err, data) { if (err) { console.log(err.stack); return; }
console.log('Message sent successfully.'); });
// 发送纯文本消息的示例代码 var sns = new AWS.SNS({ region: 'us-east-1' });
sns.publish({ Message: 'This is a long message with more than 160 characters. To avoid size restrictions, try breaking up the message into multiple chunks.', TopicArn: 'arn:aws:sns:us-east-1:123456789012:myTopic' }, function(err, data) { if (err) { console.log(err.stack); return; }
console.log('Message sent successfully.'); });
// 分块发送多条短信消息的示例代码 var sns = new AWS.SNS({ region: 'us-east-1' });
var message = 'This is a long message with more than 160 characters. To avoid size restrictions, try breaking up the message into multiple chunks.';
var chunks = message.match(/.{1,160}/g);
chunks.forEach(function(chunk, index) { sns.publish({ Message: chunk, TopicArn: 'arn:aws:sns:us-east-1:123456789012:myTopic' }, function(err, data) { if (err) { console.log(err.stack); return; }
console.log('Message ' + (index + 1) + ' sent successfully.');
}); });