是否有人与任何 SMS 接收器建立了集成?
Has anyone built an integration with any SMS Receivers?
我希望能够向某个号码发送短信,然后(在收到短信后)基本上只是在收到短信后向其他服务发送 post 请求。有谁知道我可以用来设置它的服务吗?希望它尽可能快
下面是设置示例应用的步骤摘要:
- 导航至
Amazon SNS
服务 → Topics
- 输入
Name
并创建一个新主题
- 对于新创建的主题,创建协议为
AWS Lambda
的订阅(见下图 1)
- 导航到
Amazon Pinpoint
服务,创建新的 Pinpoint 应用程序
- 为此 Pinpoint 应用程序启用
SMS & voice
功能
- 获取新的长码(长码价格为1美元/月)
- 对于长代码,
Enable two-way SMS
、select Choose an existing SNS topic
选项和 select 在上面第 2 步中创建的 SNS 主题 (见图 2下面)
- 最后,现在您可以从 phone 向 phone 号码发送消息,这将触发您的 lambda 函数。在您的 lambda 函数中,您可以向不同的服务发送 POST 请求或执行任何其他操作。您还可以回复用户的消息 - 请参见下面的示例。
以下是如何在 Java 中使用 Amazon Pinpoint 发送消息的示例:
public void sendSMS(String pinpointPhoneNumber, String userPhoneNumber, String messageContent) {
// define who the message is going to and via what platform
Map<String, AddressConfiguration> addressMap = new HashMap<>();
addressMap.put(userPhoneNumber, new AddressConfiguration().withChannelType(ChannelType.SMS));
SMSMessage smsMessage = new SMSMessage();
smsMessage.setOriginationNumber(pinpointPhoneNumber);
smsMessage.setMessageType(MessageType.TRANSACTIONAL);
smsMessage.setBody(messageContent);
// add sms message to the direct message config
// this can have many other types of messages
DirectMessageConfiguration directMessageConfiguration = new DirectMessageConfiguration()
.withSMSMessage(smsMessage);
// put the phone numbers and all messages in here
MessageRequest messageRequest = new MessageRequest()
.withAddresses(addressMap)
.withMessageConfiguration(directMessageConfiguration);
// create send request
SendMessagesRequest sendMessagesRequest = new SendMessagesRequest()
.withApplicationId("put-pinpoint-app-id-here")
.withMessageRequest(messageRequest);
// send the message
AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard().build();
SendMessagesResult sendMessagesResult = pinpointClient.sendMessages(sendMessagesRequest);
MessageResponse messageResponse = sendMessagesResult.getMessageResponse();
}
我希望能够向某个号码发送短信,然后(在收到短信后)基本上只是在收到短信后向其他服务发送 post 请求。有谁知道我可以用来设置它的服务吗?希望它尽可能快
下面是设置示例应用的步骤摘要:
- 导航至
Amazon SNS
服务 →Topics
- 输入
Name
并创建一个新主题 - 对于新创建的主题,创建协议为
AWS Lambda
的订阅(见下图 1) - 导航到
Amazon Pinpoint
服务,创建新的 Pinpoint 应用程序 - 为此 Pinpoint 应用程序启用
SMS & voice
功能 - 获取新的长码(长码价格为1美元/月)
- 对于长代码,
Enable two-way SMS
、selectChoose an existing SNS topic
选项和 select 在上面第 2 步中创建的 SNS 主题 (见图 2下面) - 最后,现在您可以从 phone 向 phone 号码发送消息,这将触发您的 lambda 函数。在您的 lambda 函数中,您可以向不同的服务发送 POST 请求或执行任何其他操作。您还可以回复用户的消息 - 请参见下面的示例。
以下是如何在 Java 中使用 Amazon Pinpoint 发送消息的示例:
public void sendSMS(String pinpointPhoneNumber, String userPhoneNumber, String messageContent) {
// define who the message is going to and via what platform
Map<String, AddressConfiguration> addressMap = new HashMap<>();
addressMap.put(userPhoneNumber, new AddressConfiguration().withChannelType(ChannelType.SMS));
SMSMessage smsMessage = new SMSMessage();
smsMessage.setOriginationNumber(pinpointPhoneNumber);
smsMessage.setMessageType(MessageType.TRANSACTIONAL);
smsMessage.setBody(messageContent);
// add sms message to the direct message config
// this can have many other types of messages
DirectMessageConfiguration directMessageConfiguration = new DirectMessageConfiguration()
.withSMSMessage(smsMessage);
// put the phone numbers and all messages in here
MessageRequest messageRequest = new MessageRequest()
.withAddresses(addressMap)
.withMessageConfiguration(directMessageConfiguration);
// create send request
SendMessagesRequest sendMessagesRequest = new SendMessagesRequest()
.withApplicationId("put-pinpoint-app-id-here")
.withMessageRequest(messageRequest);
// send the message
AmazonPinpoint pinpointClient = AmazonPinpointClientBuilder.standard().build();
SendMessagesResult sendMessagesResult = pinpointClient.sendMessages(sendMessagesRequest);
MessageResponse messageResponse = sendMessagesResult.getMessageResponse();
}