在https://dashboard.nexmo.com/getting-started/verify上展示的教程说,一切都应该通过编码来工作:
1 NexmoClient client = NexmoClient.Builder()
2 .apiKey("HIDDEN-CODE-I-CANNOT-SHOW")
3 .apiSecret("HIDDEN-CODE-I-CANNOT-SHOW")
4 .build();
5 VerifyClient verifyClient = client.getVerifyClient();
6
7 VerifyRequest request = new VerifyRequest("HIDDEN-CODE-I-CANNOT-SHOW", "HIDDEN-CODE-I-CANNOT-SHOW");
8 request.setLength(4);
9
10 VerifyResponse response = verifyClient.verify(request);
11
12 if (response.getStatus() == VerifyStatus.OK) {
13 System.out.printf("RequestID: %s", response.getRequestId());
14 } else {
15 System.out.printf("ERROR! %s: %s",
16 response.getStatus(),
17 response.getErrorText()
18 );
19 }
我的问题/bug是下一个:
request.SETLENGHT(4);
response.GETSTATUS();
这两行代码(8-12)是红色的(只有大写字母的字符)。如果我把光标放在它们上面,它会显示一条消息">无法解析符号'setLength'";and无法解析符号"getStatus">";分别。
我以为有人和我有同样的问题,但事实并非如此。我已经进入了nexmo库开发人员的存储库,并且这两个函数都写在那里(我试图说它们存在),但在我的程序中它们并没有建立。
这些是开发人员的存储库:
- https://github.com/Nexmo/nexmo-java
- https://github.com/Nexmo/nexmo-java/blob/master/src/main/java/com/nexmo/client/verify/VerifyRequest.java
- https://github.com/vonage/vonage-java-sdk
在第一个他们说,我引用"我们建议用户开始迁移到Vonage Java Server SDK。如果您有任何问题,请通过devrel@vonage.com或通过我们的社区Slack https://developer.nexmo.com/community/slack"与我们联系;正如他们所说,我确实尝试迁移到项目的新版本,但那两行的问题也保留在那里。
第二个链接显示了为nexmo库编写的一些函数。从第315行到第323行,可以看到函数"。setlength "确实存在,因为开发人员为它创建了一个构建器,下面是从该链接复制和粘贴的代码:
/**
* @param length (optional) The length of the verification code to be sent to the user. Must be either 4 or 6. Use
* -1 to use the default value.
* @return {@link Builder}
*/
public Builder length(Integer length) {
this.length = length;
return this;
}
有什么问题吗?库吗?兼容性?我正在使用Apache Maven 3.6.3。这是我的诗:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.2FA</groupId>
<artifactId>Auth-Two-Steps</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Auth-Two-Steps</name>
<description>Mini project to learn authentication</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.nexmo</groupId>
<artifactId>client</artifactId>
<version>5.6.0</version>
</dependency>
<dependency>
<groupId>com.2FA</groupId>
<artifactId>Auth-Two-Steps</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
这些代码片段将在nexmo 4上工作。但在5. x SDK上将失败。6. x Nexmo SDK;x Vonage SDK,需要更新。请参阅代码片段-它将向您展示如何管理所有内容。当将构建器模式添加到Verify Request时,setLength
看起来像是被删除了,您应该使用构建器模式来代替
。
VerifyRequest request = VerifyRequest.builder("12018675309","acme").length(6).build();
getStatus()
看起来应该工作-如果你继续有问题,你可能要确保它被导入。