343.8. Reactive Chat-Bot 示例

被动聊天模式是使用 Camel 组件构建一个简单的聊天 bot 的简单方式,以回复直接从 Telegram 用户接收的消息。

以下是 Java DSL 中 chat-bot 的基本配置

from("telegram:bots/123456789:insertYourAuthorizationTokenHere")
.bean(ChatBotLogic.class)
.to("telegram:bots/123456789:insertYourAuthorizationTokenHere");

或在 Spring XML 中

<route>
    <from uri="telegram:bots/123456789:insertYourAuthorizationTokenHere"/>
    <bean ref="chatBotLogic" />
    <to uri="telegram:bots/123456789:insertYourAuthorizationTokenHere"/>
<route>

<bean id="chatBotLogic" class="com.example.ChatBotLogic"/>

ChatBotLogic 是一个实现通用字符串到字符串方法的简单 bean。

public class ChatBotLogic {

    public String chatBotProcess(String message) {
        if( "do-not-reply".equals(message) ) {
            return null; // no response in the chat
        }

        return "echo from the bot: " + message; // echoes the message
    }

}

chatBotProcess 方法返回的每个非空字符串会自动路由到源自该请求的聊天(因为 CamelTelegramChatId 标头用于路由消息)。