Amazon Pinpoint SMS印度区调用sendMessages传EntityId等参数报错如何解决
报错原因
- 你当前使用的AWS JavaScript SDK版本低于支持印度短信合规参数的最低版本,旧版SDK未将
EntityId、TemplateId纳入SMSMessage对象的合法参数校验列表,因此请求发起前的本地参数校验直接抛出未知参数错误。
解决方案
方案1(推荐):升级AWS SDK到对应版本
根据你使用的SDK版本选择升级方式:
- 若使用AWS SDK for JavaScript v2:升级到2.1354.0及以上版本即可兼容这两个参数,升级后原有代码无需修改即可正常运行。
- 若使用AWS SDK for JavaScript v3:升级
@aws-sdk/client-pinpoint依赖到最新正式版即可。
方案2(临时绕过):关闭SDK参数校验
如果暂时无法升级SDK,可以在初始化Pinpoint客户端时添加paramValidation: false配置,跳过本地参数校验,参数会直接发送到Pinpoint服务端:
const pinpoint = new AWS.Pinpoint({ region: '你的服务部署区域', paramValidation: false });
注意该方案仅可作为临时过渡使用,跳过参数校验会遗漏其他参数格式错误的提前检查,不建议长期在生产环境使用。
前置合规校验确认
参数配置正确后还需要确认以下条件,否则短信仍会发送失败:
- 你使用的
EntityId、TemplateId、SenderId均已在印度电信监管部门完成注册并通过审批 - 发送的短信
Body内容和你注册时提交的模板内容完全一致,没有额外修改内容 - 发送的目标号码为印度本地号码,前缀正确添加了印度国家码
+91
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

