为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的 Twilio 电话号码在收到状态代码:200 时也不会回复短信?

为什么我的 Twilio 电话号码在收到状态代码:200 时也不会回复短信?

MMTTMM 2022-08-17 17:24:24
要注意:当你看到我展示代码的地方时,它只是意味着我试图不透露太多。postmapping-url-hereMyOwnDefinedEntity所以我用来发送和接收短信。我已经在这个问题上卡了大约3天,我似乎不知道如何解决它。Twilio我用作应用程序框架、生成工具和 IDE。我还使用创建一个隧道来运行。Spring BootGradleVSCodeNgroklocalhost:8080当我将其作为:public static void main(String[] args) {}它工作得很好,我的号码发回了一条短信作为回应。Twilio但是,当我将其放在自己的函数中,调用该函数,并使用整个应用程序运行它时,我仍然会从它作为方法工作时获得相同的状态代码,但我的号码不会给我回短信。200mainTwilio我已经尝试过使用,并且我已经尝试过同时测试它和.@PostMapping@GetMappingPOSTGET在我从站点发送和接收代码中,我尝试使用 和 作为响应类型。Twilioapplication/xmlapplication/json以下是我到目前为止的一些代码:public static void TwilioRespondToSMS() {        get("/", (req, res) -> "");        post("/<postmapping-url-here>", (req, res) -> {            res.type("application/xml");            Body body = new Body                    .Builder("This is a response to your text message")                    .build();            Message sms = new Message                    .Builder()                    .body(body)                    .build();            MessagingResponse twiml = new MessagingResponse                    .Builder()                    .message(sms)                    .build();            return twiml.toXml();        });                }这是代码:main@SpringBootApplicationpublic class ApplicationServerClass {    public static void main(String[] args) {        SpringApplication.run(ApplicationServerClass.class, args);        //TwilioRespondToSMS();    }    // Whatever other code ...}我还尝试将我的函数放入:@Bean    public CommandLineRunner commandRunner() {        return (args) -> {            TwilioRespondToSMS();            // Whatever other code ...        }    }Twilio网站的例子将其显示为一个函数。在对整个应用程序运行该示例时,是否需要更改该示例?main提前致谢。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

好吧,经过4天试图解决我的问题,我终于能够自己想出一个解决方案。


我想也许这只是一个愚蠢的错误,直到现在我才注意到,但我觉得这个解决方案并不容易想出。所以我要分享一下我是怎么想到这个的。


在将函数中的 URL 映射到自定义方法之前,我实际上获得了状态代码,因为它无法识别任何要映射到的请求 URL。post@PostMapping404POST


我认为正确的解决方案是使用 定制的 ,但这只会导致我使用相同的端口:作为运行我的应用程序的端口。这就是为什么我没有收到来自我的Twilio号码的任何短信,即使我得到的状态代码为。@PostMappingJava Spark8080Spring Boot200


因此,以下是我为解决问题所做的工作:


首先,我删除了我的自定义函数@PostMapping


@PostMapping("/<postmapping-url-here>")

    public ResponseEntity<MyOwnDefinedEntity> getMyOwnDefinedEntity(@PathVariable Long id) {

        log.debug("REST request to get MyOwnDefinedEntity : {}", id);

        Optional<MyOwnDefinedEntity> myOwnDefinedEntity = myOwnDefinedEntityRepository.findById(id);

        //if(myOwnDefinedEntity.isPresent())

        return new ResponseEntity<MyOwnDefinedEntity>(MyOwnDefinedEntity.get(), HttpStatus.OK);

    }

我把我的功能保留在:


@Bean

    public CommandLineRunner commandRunner() {

        return (args) -> {

            TwilioRespondToSMS();

            // Whatever other code ...

        }

    }

最后,在我的里面,我添加了:,或任何其他不是的端口号。TwilioRespondToSMS()port(8070);8080


在本例中,现在通过隧道 URL 使用,并且正在使用 。在这一点上,我终于能够在同时运行的同时成功地从我的号码中取回回复短信。Java Spark8070NgrokSpring Boot8080TwilioSpring Boot


查看完整回答
反对 回复 2022-08-17
  • 1 回答
  • 0 关注
  • 326 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信