如何在不发送自动回复的情况下阅读传入的短信
How to read incoming sms messages without sending an auto-response
我想阅读来自 Twilio 的传入消息。我已经按照他们网站上的建议使用 ngrok 设置了隧道。
我可以使用以下方式发送消息
SendMessage.java
Twilio.init(SendAndReceiveController.ACCOUNT_SID, SendAndReceiveController.AUTH_TOKEN);
Message message = Message.creator(new PhoneNumber(receiver),
new PhoneNumber(sender),smsContent).create();
我尝试了 4 种不同的方法来完成 receive/read。
ReceiveMessage.java
MessageFetcher mf = new MessageFetcher("SM2ccd0dc43cea07bcc3f522b3e571eb79");
System.out.println("message is " + mf.fetch().getBody()); <-- Method 1
Body body = new Body("Something here"); <-- Method 2
Message message = new Message.Builder().action("/receive-sms")
.method(Method.POST).body(body).build();
MessagingResponse response = new MessagingResponse.Builder().message(message).build();
ResourceSet<Message> messages = Message.reader().read(); <-- Method 3
for(Message message : messages){
System.out.println(message);
}
try {
System.out.println(response.toXml());
} catch (TwiMLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
post("/receive-sms", (req, res)-> { <-- Method 4
// This gets the message content
System.out.println(req.queryParams("Body"));
// GOT CONTENT
// Must parse the format and get the content value
// Must be able to get the latest message
Message sms = new Message.Builder()
.body(new Body(""))
.build();
MessagingResponse twiml = new MessagingResponse.Builder()
.message(sms)
.build();
return twiml.toXml();
});
我目前正在使用方法 4。虽然它有效,但我不得不发回消息,因为它是 post [这是使用 sparkjava 库]。我和 Twilio 的技术帮助来回发邮件,他们一直向我推荐使用 Twilio 的 REST 中的回调函数 api。我相信我使用的post方法是一个回调函数。
有什么方法可以让我在不发送回复的情况下阅读用户的最新消息吗?如果是这样,您能否用代码解释一下如何做到这一点?我很难理解如何将其翻译成 Java,因为他们网站上的大部分代码似乎都在 HTML.
中
感谢任何帮助。
这里是 Twilio 开发人员布道者。
您使用方法 4 是正确的。您正在接收作为对 /receive-sms
端点的 POST 请求的传入消息。
但是,你不想回复!谢天谢地,这很好也很容易。您可以将其留空,而不是用 Message
构建 MessagingResponse
。
post("/receive-sms", (req, res)-> { <-- Method 4
// This gets the message content
System.out.println(req.queryParams("Body"));
// GOT CONTENT
// Must parse the format and get the content value
// Must be able to get the latest message
// do something with the content
MessagingResponse twiml = new MessagingResponse.Builder().build();
return twiml.toXml();
});
这将生成以下 TwiML 作为结果:
<Response />
并且不会发送回复消息。
如果有帮助请告诉我。
我想阅读来自 Twilio 的传入消息。我已经按照他们网站上的建议使用 ngrok 设置了隧道。
我可以使用以下方式发送消息
SendMessage.java
Twilio.init(SendAndReceiveController.ACCOUNT_SID, SendAndReceiveController.AUTH_TOKEN);
Message message = Message.creator(new PhoneNumber(receiver),
new PhoneNumber(sender),smsContent).create();
我尝试了 4 种不同的方法来完成 receive/read。
ReceiveMessage.java
MessageFetcher mf = new MessageFetcher("SM2ccd0dc43cea07bcc3f522b3e571eb79");
System.out.println("message is " + mf.fetch().getBody()); <-- Method 1
Body body = new Body("Something here"); <-- Method 2
Message message = new Message.Builder().action("/receive-sms")
.method(Method.POST).body(body).build();
MessagingResponse response = new MessagingResponse.Builder().message(message).build();
ResourceSet<Message> messages = Message.reader().read(); <-- Method 3
for(Message message : messages){
System.out.println(message);
}
try {
System.out.println(response.toXml());
} catch (TwiMLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
post("/receive-sms", (req, res)-> { <-- Method 4
// This gets the message content
System.out.println(req.queryParams("Body"));
// GOT CONTENT
// Must parse the format and get the content value
// Must be able to get the latest message
Message sms = new Message.Builder()
.body(new Body(""))
.build();
MessagingResponse twiml = new MessagingResponse.Builder()
.message(sms)
.build();
return twiml.toXml();
});
我目前正在使用方法 4。虽然它有效,但我不得不发回消息,因为它是 post [这是使用 sparkjava 库]。我和 Twilio 的技术帮助来回发邮件,他们一直向我推荐使用 Twilio 的 REST 中的回调函数 api。我相信我使用的post方法是一个回调函数。
有什么方法可以让我在不发送回复的情况下阅读用户的最新消息吗?如果是这样,您能否用代码解释一下如何做到这一点?我很难理解如何将其翻译成 Java,因为他们网站上的大部分代码似乎都在 HTML.
中感谢任何帮助。
这里是 Twilio 开发人员布道者。
您使用方法 4 是正确的。您正在接收作为对 /receive-sms
端点的 POST 请求的传入消息。
但是,你不想回复!谢天谢地,这很好也很容易。您可以将其留空,而不是用 Message
构建 MessagingResponse
。
post("/receive-sms", (req, res)-> { <-- Method 4
// This gets the message content
System.out.println(req.queryParams("Body"));
// GOT CONTENT
// Must parse the format and get the content value
// Must be able to get the latest message
// do something with the content
MessagingResponse twiml = new MessagingResponse.Builder().build();
return twiml.toXml();
});
这将生成以下 TwiML 作为结果:
<Response />
并且不会发送回复消息。
如果有帮助请告诉我。