设计优秀的网站推荐,安陆建设局网站,wordpress短代码返回html,如何建立网站模板微软为了鼓励Java开发人员开发bot#xff0c;在上个月推出了Java的Bot SDK v4.6版本#xff0c;目前还在Preview版本#xff0c;相信不用多久就可以赶上其他版本了。
我的java还停留在 n 年前的水平#xff0c;但是处于好奇#xff0c;决定玩一下这套sdk。
这套sdk目前建…微软为了鼓励Java开发人员开发bot在上个月推出了Java的Bot SDK v4.6版本目前还在Preview版本相信不用多久就可以赶上其他版本了。
我的java还停留在 n 年前的水平但是处于好奇决定玩一下这套sdk。
这套sdk目前建议的java版本是 1.8或者以上我们打开最简单的EchoBot可以看到入口的application如下
public class Application extends BotDependencyConfiguration {public static void main(String[] args) {SpringApplication.run(Application.class, args);}Overridepublic BotFrameworkHttpAdapter getBotFrameworkHttpAdaptor(Configuration configuration) {return new AdapterWithErrorHandler(configuration);}
}使用spring并且通过重载getBotFrameworkHttpAdaptor方法来让bot framework获取一个Adapter。
核心的EchoBot类从ActivityHandler继承当用户发送一条消息的时候onMessageActivity()函数会被调用通过参数turnContext可以获取当前的activity信息并且和c# sdk类似通过调用turnContext.sendActivity()来回复消息。
Component
public class EchoBot extends ActivityHandler {Overrideprotected CompletableFutureVoid onMessageActivity(TurnContext turnContext) {return turnContext.sendActivity(MessageFactory.text(Echo: turnContext.getActivity().getText())).thenApply(sendResult - null);}Overrideprotected CompletableFutureVoid onMembersAdded(ListChannelAccount membersAdded,TurnContext turnContext) {return membersAdded.stream().filter(member - !StringUtils.equals(member.getId(), turnContext.getActivity().getRecipient().getId())).map(channel - turnContext.sendActivity(MessageFactory.text(Hello and welcome!))).collect(CompletableFutures.toFutureList()).thenApply(resourceResponses - null);}
}在EchoBot里还重载了onMembersAdded()方法当有一个用户加入会话时这个方法会被调用但是由于java像c#那种简单的property语法和await/async语法所以可以看到整个方法代码读起来有点累。 :(
总体上看java sdk和其他c#, js sdk在术语和结构上基本完全一致有其他语言bot sdk开发经验的人使用java应该也就是一两天的适应过程。希望java sdk也能尽快赶上其他语言的sdk。
参考 Bot SDK Java repo