问题描述
我目前有一个 Node.js 服务,可以通过 AWS Pinpoint 发送语音呼叫。但是,我在拨打电话后收到了 Resource not found
回复。我用 PinpointSMSVoice.sendVoiceMessage
进行了测试,它成功地拨打了电话。不起作用的是Pinpoint.sendMessages
。我的请求对象如下所示:
{
ApplicationId: 'project-id',MessageRequest: {
Addresses: {
['destination-number']: {
ChannelType: 'VOICE',Substitutions: {
// Using a template
}
}
},MessageConfiguration: {
VoiceMessage: {
LanguageCode: 'en-US',OriginationNumber: 'origination-number'
}
},TemplateConfiguration: {
VoiceTemplate: {
Name: 'voice-template
}
}
}
};
pinpoint.sendMessages(requestObj,callback);
我应该注意,我不是在沙盒模式下,它已被批准并转移到生产模式。我已经用 SMS 测试了相同的设置,效果很好。我不太确定 PinpointSMSVoice.sendVoiceMessage
和 Pinpoint.sendMessages
之间的区别是什么,除了 Pinpoint.sendMessages
允许我设置模板这一事实。关于我可能还缺少什么的任何想法?
解决方法
我遇到了同样的问题。它使用 PinPointSMSVoice 客户端工作,但这不会让我使用模板。我还使用 AWS JS SDK 的 V3 对此进行了测试,该 SDK 将客户端 @aws-sdk/client-pinpoint-sms-voice 和 @aws-sdk/client-pinpoint 模块化,但行为是相同的。它在控制台的“测试消息”功能中使用相同的模板,因此似乎是 JS SDK 问题。我建议您向 JS SDK 团队 https://github.com/aws/aws-sdk-js-v3
提出这个问题 ,使用 PinPoint 执行sendVoiceMessage操作时,需要将内容类型设置为application/json。如果你不这样做,你会得到这个例外。要查看示例(这是 AWS Java API),请参阅此 Github URL: