【发布时间】:2017-02-16 22:29:58
【问题描述】:
我正在使用 emp-connector 来使用 salesforce straming API,我从 salesforce 文档中的 LogingExample 及其 API 版本 36.0 的工作文件开始,但是当我尝试使用 API 版本 37.0 时。
我收到以下回复
[{"channel":"/meta/handshake","error":"400::不支持的 API 版本。 只有 API 版本“35.0”和“36.0”是 支持。","成功":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;
}
}
【问题讨论】:
标签: java salesforce connector