salesforce EMP 连接器 API 版本 37.0 失败,错误消息不受支持 API 版本
salesforce EMP connector API version 37.0 failing with error message unsupported API version
我正在使用 emp-connector 来使用 salesforce straming API,我从 salesforce 文档中的 LogingExample 开始,它的工作文件用于 API 版本 36.0,但是当我尝试使用 API 版本 37.0.
我收到以下回复
[{"channel":"/meta/handshake","error":"400::Unsupported API version.
Only API versions '35.0' and '36.0' are
supported.","successful":false}]
当我指定 API 版本 36.0 时,我的代码工作正常并通过 PushTopic
接收事件
我知道应该支持 API 版本 37.0,所以无法找出我做错了什么?
代码没有问题,因为我指定API版本36.0时它工作正常,仍然将代码粘贴在这里以供参考
public class SFPoc {
public static void main(String[] argv) throws Exception {
String userName = "<someuser>";
String password = "<pwd>";
/*String pushTopicName = "/topic/InvoiceStatementUpdates";*/
String pushTopicName = "/topic/Lead2";
long replayFrom = EmpConnector.REPLAY_FROM_EARLIEST;
String securityToken = "<securityToken>";
BayeuxParameters custom = getBayeuxParamWithSpecifiedAPIVersion("37.0");
BayeuxParameters params = null;
try {
params = login(userName, password + securityToken, custom);
} catch (Exception e) {
e.printStackTrace();
}
Consumer<Map<String, Object>> consumer = event -> System.out.println(String.format("Received:\n%s", event));
EmpConnector connector = new EmpConnector(params);
connector.start().get(10, TimeUnit.SECONDS);
TopicSubscription subscription = connector.subscribe(pushTopicName, replayFrom, consumer).get(10, TimeUnit.SECONDS);
System.out.println(String.format("Subscribed: %s", subscription));
}
private static BayeuxParameters getBayeuxParamWithSpecifiedAPIVersion(String apiVersion) {
BayeuxParameters params = new BayeuxParameters() {
@Override
public String version() {
return apiVersion;
}
@Override
public String bearerToken() {
return null;
}
};
return params;
}
}
我已经在 emp-connector 中推送了一项更改,修改了版本 < 37 的端点。你能试试这个版本,看看是否能解决你的问题吗?
我正在使用 emp-connector 来使用 salesforce straming API,我从 salesforce 文档中的 LogingExample 开始,它的工作文件用于 API 版本 36.0,但是当我尝试使用 API 版本 37.0.
我收到以下回复
[{"channel":"/meta/handshake","error":"400::Unsupported API version. Only API versions '35.0' and '36.0' are supported.","successful":false}]
当我指定 API 版本 36.0 时,我的代码工作正常并通过 PushTopic
我知道应该支持 API 版本 37.0,所以无法找出我做错了什么?
代码没有问题,因为我指定API版本36.0时它工作正常,仍然将代码粘贴在这里以供参考
public class SFPoc {
public static void main(String[] argv) throws Exception {
String userName = "<someuser>";
String password = "<pwd>";
/*String pushTopicName = "/topic/InvoiceStatementUpdates";*/
String pushTopicName = "/topic/Lead2";
long replayFrom = EmpConnector.REPLAY_FROM_EARLIEST;
String securityToken = "<securityToken>";
BayeuxParameters custom = getBayeuxParamWithSpecifiedAPIVersion("37.0");
BayeuxParameters params = null;
try {
params = login(userName, password + securityToken, custom);
} catch (Exception e) {
e.printStackTrace();
}
Consumer<Map<String, Object>> consumer = event -> System.out.println(String.format("Received:\n%s", event));
EmpConnector connector = new EmpConnector(params);
connector.start().get(10, TimeUnit.SECONDS);
TopicSubscription subscription = connector.subscribe(pushTopicName, replayFrom, consumer).get(10, TimeUnit.SECONDS);
System.out.println(String.format("Subscribed: %s", subscription));
}
private static BayeuxParameters getBayeuxParamWithSpecifiedAPIVersion(String apiVersion) {
BayeuxParameters params = new BayeuxParameters() {
@Override
public String version() {
return apiVersion;
}
@Override
public String bearerToken() {
return null;
}
};
return params;
}
}
我已经在 emp-connector 中推送了一项更改,修改了版本 < 37 的端点。你能试试这个版本,看看是否能解决你的问题吗?