使用java使用Twilio API进行电话验证

使用java使用Twilio API进行电话验证,java,twilio,twilio-api,Java,Twilio,Twilio Api,在项目中实施身份验证并使用Twilio API进行电话验证,但遇到了一个错误,我随后使用下面添加的代码进行了一个简单的测试。我从他们的网站上得到了一个示例代码,并用它做了一个基本的测试,结果出现了这个错误,我还没有弄清楚。 下面是示例代码 这里是错误 /usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java-javaagent:/snap/intellij 线程“main”com.twilio.Exception.ApiException中的异常:无法反序列化

在项目中实施身份验证并使用Twilio API进行电话验证,但遇到了一个错误,我随后使用下面添加的代码进行了一个简单的测试。我从他们的网站上得到了一个示例代码,并用它做了一个基本的测试,结果出现了这个错误,我还没有弄清楚。 下面是示例代码

这里是错误

/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java-javaagent:/snap/intellij
线程“main”com.twilio.Exception.ApiException中的异常:无法反序列化“java.util.LinkedHashMap”的实例,该实例不在START\u数组令牌中
在[Source:(ByteArrayInputStream);第1行,第100列](通过引用链:com.twilio.rest.verify.v2.service.verify[“发送代码”])
位于com.twilio.rest.verify.v2.service.verify.fromJson(verify.java:167)
位于com.twilio.rest.verify.v2.service.VerificationCreator.create(VerificationCreator.java:201)
位于com.twilio.rest.verify.v2.service.VerificationCreator.create(VerificationCreator.java:23)
位于com.twilio.base.Creator.create(Creator.java:45)
在Login.main(Login.java:14)
原因:com.fasterxml.jackson.databind.exc.MismatchedInputException:无法反序列化“java.util.LinkedHashMap”的实例,该实例不在START_数组令牌中
在[Source:(ByteArrayInputStream);第1行,第100列](通过引用链:com.twilio.rest.verify.v2.service.verify[“发送代码”])
在com.fasterxml.jackson.databind.exc.MismatchedInputException.from上(MismatchedInputException.java:59)
位于com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1442)
位于com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1216)
位于com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1126)
在com.fasterxml.jackson.databind.deser.std.StdDeserializer.\u反序列化FromEmpty(StdDeserializer.java:639)
在com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:360)上
位于com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
在com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:530)
在com.fasterxml.jackson.databind.deser.BeandSerializer.\u反序列化WitherRorWrapping(BeandSerializer.java:528)
在com.fasterxml.jackson.databind.desr.BeandSerializer.\u反序列化使用PropertyBased(BeandSerializer.java:417)
在com.fasterxml.jackson.databind.deser.BeandSerializedBase.DeserializeFromObjectUsingNodefault(BeandSerializedBase.java:1287)上
在com.fasterxml.jackson.databind.deser.beandSerializer.deserializeFromObject(beandSerializer.java:326)上
在com.fasterxml.jackson.databind.deser.BeandSerializer.deserialize(BeandSerializer.java:159)上
位于com.fasterxml.jackson.databind.ObjectMapper.\u readMapAndClose(ObjectMapper.java:4202)
在com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3242)上
位于com.twilio.rest.verify.v2.service.verify.fromJson(verify.java:165)
... 4更多
进程已完成,退出代码为1

如果您有任何帮助,我们将不胜感激,我是Twilio的新手。

Halo发现了这个bug。同时,虽然Twilio处理的是,如果您面临相同的问题,您可以使用这种方式获取验证代码:)
我使用java进程类和curl来发布

这是代码

void method(String var) throws IOException {

  String command ="curl -X POST https://verify.twilio.com/v2/Services/" + SERVICE_ID + "/Verifications --data-urlencode To=" + phoneNumber +
                        " --data-urlencode Channel=sms -u " + ACCOUNT_SID + ":" + AUTH_TOKEN;

  Process process = Runtime.getRuntime().exec(command);
  process.getInputStream();
// some code
}

为什么不使用.setTo()方法?是的,@VK321这是真的,但如果你看得好,你会意识到它是用于VerificationCheck方法的。我得到的短信通知很好,但立即运行到该错误,如果我检查控制台,我得到的验证状态设置为挂起。这已作为一个问题提出,所以我建议如下。您可能可以将Java库回滚到7.47.3,而7.47.3不尝试进行解析,现在可以继续工作。这应该在刚刚发布的7.47.6版本中得到修复。试一试,让我知道它是否适合你。太棒了@philnash与新的7.48.0配合得很好
/usr/lib/jvm/java-1.8.0-openjdk-amd64/bin/java -javaagent:/snap/intellij
Exception in thread "main" com.twilio.exception.ApiException: Cannot deserialize instance of `java.util.LinkedHashMap<java.lang.Object,java.lang.Object>` out of START_ARRAY token
 at [Source: (ByteArrayInputStream); line: 1, column: 100] (through reference chain: com.twilio.rest.verify.v2.service.Verification["send_code_attempts"])
    at com.twilio.rest.verify.v2.service.Verification.fromJson(Verification.java:167)
    at com.twilio.rest.verify.v2.service.VerificationCreator.create(VerificationCreator.java:201)
    at com.twilio.rest.verify.v2.service.VerificationCreator.create(VerificationCreator.java:23)
    at com.twilio.base.Creator.create(Creator.java:45)
    at Login.main(Login.java:14)
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.LinkedHashMap<java.lang.Object,java.lang.Object>` out of START_ARRAY token
 at [Source: (ByteArrayInputStream); line: 1, column: 100] (through reference chain: com.twilio.rest.verify.v2.service.Verification["send_code_attempts"])
    at com.fasterxml.jackson.databind.exc.MismatchedInputException.from(MismatchedInputException.java:59)
    at com.fasterxml.jackson.databind.DeserializationContext.reportInputMismatch(DeserializationContext.java:1442)
    at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1216)
    at com.fasterxml.jackson.databind.DeserializationContext.handleUnexpectedToken(DeserializationContext.java:1126)
    at com.fasterxml.jackson.databind.deser.std.StdDeserializer._deserializeFromEmpty(StdDeserializer.java:639)
    at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:360)
    at com.fasterxml.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:29)
    at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:530)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:528)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:417)
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1287)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:326)
    at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3242)
    at com.twilio.rest.verify.v2.service.Verification.fromJson(Verification.java:165)
    ... 4 more

Process finished with exit code 1
void method(String var) throws IOException {

  String command ="curl -X POST https://verify.twilio.com/v2/Services/" + SERVICE_ID + "/Verifications --data-urlencode To=" + phoneNumber +
                        " --data-urlencode Channel=sms -u " + ACCOUNT_SID + ":" + AUTH_TOKEN;

  Process process = Runtime.getRuntime().exec(command);
  process.getInputStream();
// some code
}