基于Java的电报机器人Api:如何发送表情符号?

基于Java的电报机器人Api:如何发送表情符号?,java,emoji,telegram-bot,Java,Emoji,Telegram Bot,我正在做一个基于Java的电报机器人API,但我不知道如何从Java发送表情 我曾尝试使用该库以unicode格式发送表情符号,但似乎不起作用 那么,如何将表情从Java发送到电报 谢谢。以下是我一直在使用的代码: String ballEmoji = "\u26BD"; String bananaEmoji = "\uD83C\uDF4C"; String koreanFlagEmoji = "\uD83C\uDDF0\uD83C\uDDF7"; emojis列表可以从下载这里是一个示例bo

我正在做一个基于Java的电报机器人API,但我不知道如何从Java发送表情

我曾尝试使用该库以unicode格式发送表情符号,但似乎不起作用

那么,如何将表情从Java发送到电报


谢谢。

以下是我一直在使用的代码:

String ballEmoji = "\u26BD";
String bananaEmoji = "\uD83C\uDF4C";
String koreanFlagEmoji = "\uD83C\uDDF0\uD83C\uDDF7";

emojis列表可以从下载这里是一个示例bot,它以消息的形式发送emojis。它还有带有表情符号的按钮

import com.vdurmont.emoji.EmojiParser;
import org.telegram.telegrambots.ApiContextInitializer;
import org.telegram.telegrambots.TelegramBotsApi;
import org.telegram.telegrambots.api.methods.send.SendMessage;
import org.telegram.telegrambots.api.objects.Update;
import org.telegram.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardButton;
import org.telegram.telegrambots.api.objects.replykeyboard.buttons.KeyboardRow;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.exceptions.TelegramApiException;

import java.util.ArrayList;
import java.util.List;

public class SimpleEmojiExample extends TelegramLongPollingBot {
    private String smile_emoji = EmojiParser.parseToUnicode(":smiley: some text");
    private String share_number_emoji = EmojiParser.parseToUnicode(":phone: share your number");
    private String money_emoji = EmojiParser.parseToUnicode(":moneybag:");

    public static void main(String[] args) {
        ApiContextInitializer.init();
        TelegramBotsApi botsApi = new TelegramBotsApi();
        try {
            botsApi.registerBot(new SimpleEmojiExample());
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }

    public void setButtons(SendMessage sendMessage) {
        ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup();
        sendMessage.setReplyMarkup(replyKeyboardMarkup);
        replyKeyboardMarkup.setSelective(true);
        replyKeyboardMarkup.setResizeKeyboard(true);
        replyKeyboardMarkup.setOneTimeKeyboad(false);

        List<KeyboardRow> keyboard = new ArrayList<KeyboardRow>();
        KeyboardRow keyboardFirstRow = new KeyboardRow();
        keyboardFirstRow.add(smile_emoji);
        keyboardFirstRow.add(smile_emoji);
        KeyboardRow keyboardSecondRow = new KeyboardRow();
        KeyboardButton shareNumBtn = new KeyboardButton(share_number_emoji);
        shareNumBtn.setRequestContact(true);
        shareNumBtn.setRequestLocation(false);
        keyboardSecondRow.add(shareNumBtn);
        keyboard.add(keyboardFirstRow);
        keyboard.add(keyboardSecondRow);
        replyKeyboardMarkup.setKeyboard(keyboard);
    }

    public void onUpdateReceived(Update update) {
        long chat_id = update.getMessage().getChatId();
        SendMessage message = new SendMessage();
        message.setChatId(chat_id);
        // We check if the update has a message and the message has text
        if (update.hasMessage() && update.getMessage().hasText()) {
            if (update.getMessage().getText().equals("/start")) {
                String message_text = "Welcome to our bot! " + smile_emoji;
                message.setText(message_text);
            } else if (update.getMessage().getText().equals(smile_emoji)) {
                message.setText("some text as response " + money_emoji);
            } else {
                message.setText("Order is not recognized");
            }
        } else if (update.getMessage().getContact() != null) {//contact is shared
            message.setText("You have shared your number: " + update.getMessage().getContact().getPhoneNumber());
        }

        setButtons(message);
        try {
            sendMessage(message); // Sending our message object to user
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
    }

    public String getBotUsername() {
        return "yourBotName";//add your own
    }


    public String getBotToken() {
        return "yourTokenFromBotFather";//add your own
    }

}
import com.vdurmont.emoji.EmojiParser;
导入org.telegram.telegrambots.ApiContextInitializer;
导入org.telegram.telegrambots.TelegramBotsApi;
导入org.telegram.telegrambots.api.methods.send.SendMessage;
导入org.telegram.telegrambots.api.objects.Update;
导入org.telegrame.telegrambots.api.objects.replykeyboard.ReplyKeyboardMarkup;
导入org.telegrame.telegrambots.api.objects.replykeyboard.buttons.KeyboardButton;
导入org.telegrame.telegrambots.api.objects.replykeyboard.buttons.keyboard行;
导入org.telegrame.telegrambots.bots.telegramelongpollingbot;
导入org.telegram.telegrambots.exceptions.TelegramApiException;
导入java.util.ArrayList;
导入java.util.List;
公共类simpleemojie示例扩展TelegramongPollingBot{
私有字符串smile_emoji=EmojiParser.parseToUnicode(“:smiley:some text”);
私有字符串share\u number\u emoji=EmojiParser.parseToUnicode(“:phone:share your number”);
私有字符串money_emoji=EmojiParser.parseToUnicode(“:moneybag:”);
公共静态void main(字符串[]args){
apiconteInitializer.init();
电报botsApi botsApi=新电报botsApi();
试一试{
registerBot(新的SimpleEmojiExample());
}捕获(e){
e、 printStackTrace();
}
}
公共无效设置按钮(SendMessage SendMessage){
ReplyKeyboardMarkup ReplyKeyboardMarkup=新建ReplyKeyboardMarkup();
setReplyMarkup(replyKeyboardMarkup);
replyKeyboardMarkup.setSelective(true);
replyKeyboardMarkup.setResizeKeyboard(true);
replyKeyboardMarkup.setOneTimeKeyboad(false);
列表键盘=新建ArrayList();
KeyboardRow keyboardFirstRow=新键盘行();
键盘第一行。添加(微笑表情符号);
键盘第一行。添加(微笑表情符号);
KeyboardRow keyboardSecondRow=新键盘行();
KeyboardButton shareNumBtn=新键盘按钮(共享号码表情符号);
shareNumBtn.setRequestContact(真);
shareNumBtn.setRequestLocation(false);
keyboardSecondRow.add(ShareNumbertn);
键盘。添加(键盘第一行);
键盘。添加(键盘第二行);
replyKeyboardMarkup.setKeyboard(键盘);
}
收到更新资料时的公共作废(更新){
long chat_id=update.getMessage().getChatId();
SendMessage=新建SendMessage();
message.setChatId(聊天室id);
//我们检查更新是否有消息,消息是否有文本
if(update.hasMessage()&&update.getMessage().hasText()){
if(update.getMessage().getText().equals(“/start”)){
字符串消息\u text=“欢迎使用我们的机器人!”+微笑\u表情符号;
message.setText(message_text);
}else if(update.getMessage().getText().equals(smile\u emoji)){
message.setText(“一些文本作为响应”+money_emoji);
}否则{
message.setText(“无法识别订单”);
}
}如果(update.getMessage().getContact()!=null){//contact是共享的,则为else
message.setText(“您已共享您的号码:+update.getMessage().getContact().getPhoneNumber());
}
设置按钮(消息);
试一试{
sendMessage(message);//将消息对象发送给用户
}捕获(e){
e、 printStackTrace();
}
}
公共字符串getBotUsername(){
返回“yourBotName”;//添加您自己的
}
公共字符串getBotToken(){
返回“yourTokenFromBotFather”;//添加您自己的
}
}
要添加到maven pom.xml文件的依赖项:

<dependencies>
    <dependency>
        <groupId>org.telegram</groupId>
        <artifactId>telegrambots</artifactId>
        <version>2.4.4.5</version>
    </dependency>
    <dependency>
        <groupId>com.vdurmont</groupId>
        <artifactId>emoji-java</artifactId>
        <version>3.2.0</version>
    </dependency>
</dependencies>

组织电报

  • 在电报中键入任何表情符号

  • 选择表情符号所在的文本区域

  • 复制并粘贴到Intellij Idea中。IDE将自动为其生成代码


  • 如果您可以制作一个简单的示例来展示如何使用EmojiJava库,那将非常有用。