带有 Java API 的格子链接 - 为什么我会收到'client_id must be a properly formatted, non-empty string'错误



我使用官方的Plaid Java API来制作一个演示应用程序。我已经得到后端工作在沙盒,与他们的/Sandbox/public_token/创建生成的公钥。

现在,我正试图修改Plaid的快速启动项目的前端,以便与我的后端对话,这样我就可以开始使用开发层与我的IRL银行账户一起工作了。

我正在实现基本的第一步——生成link_token。但是,当前端调用控制器时,我得到以下错误:

ErrorResponse{displayMessage='null', errorCode='INVALID_FIELD', errorMessage='client_id must be a properly formatted, non-empty string', errorType='INVALID_REQUEST', requestId=''}

这是我尝试生成link_token的当前迭代:

public LinkTokenResponse generateLinkToken() throws IOException {
List<String> plaidProducts = new ArrayList<>();
plaidProducts.add("transactions");
List<String> countryCodes = new ArrayList<>();
countryCodes.add("US");
countryCodes.add("CA");
Response<LinkTokenCreateResponse> response =
plaidService.getClient().service().linkTokenCreate(new LinkTokenCreateRequest(
new LinkTokenCreateRequest.User("test_user_ID"),
"test client",
plaidProducts,
countryCodes,
"en"
).withRedirectUri("")).execute();
try {
ErrorResponse errorResponse = plaidService.getClient().parseError(response);
System.out.println(errorResponse.toString());
} catch (Exception e) {
// deal with it. you didn't even receive a well-formed JSON error response.
}
return new LinkTokenResponse(response.body().getLinkToken());
}

我模仿了它在格子快速入门的例子中是如何工作的。我没有看到客户端ID被显式地设置在那里的任何地方,或在Plaid的Java API的其他地方。我有点不知所措。

我不是特别熟悉Java Plaid库,但是在使用Plaid客户端库时,客户端ID通常是在初始化客户端实例时设置的。从那里,它将自动包含在您从该客户端发出的任何呼叫中。

你可以看到在Java快速入门中设置的客户端ID:https://github.com/plaid/quickstart/blob/master/java/src/main/java/com/plaid/quickstart/QuickstartApplication.java L67

PlaidClient.Builder builder = PlaidClient.newBuilder()
.clientIdAndSecret(configuration.getPlaidClientID(), configuration.getPlaidSecret());
switch (configuration.getPlaidEnv()) {
case "sandbox":
builder = builder.sandboxBaseUrl();
break;
case "development":
builder = builder.developmentBaseUrl();
break;
case "production":
builder = builder.productionBaseUrl();
break;
default:
throw new IllegalArgumentException("unknown environment: " + configuration.getPlaidEnv());
}
PlaidClient plaidClient = builder.build();

相关内容

最新更新