2016-05-02 4 views
1

Мне нужно использовать бота в встроенном режиме, и я использую библиотеку open source java для обработки запроса RESTful API телеграммы. Библиотеку можно найти по этой ссылке https://github.com/pengrad/java-telegram-bot-api. Я пытался сделать это:Телеграммы Боты - встроенный режим

String query = inlineQuery.query().trim().toLowerCase(); 
List<String> answerList = new LinkedList<String>(); 
answerList.add("first_answer"); 
answerList.add("second_answer"); 
InlineQueryResult[] resArray = new InlineQueryResult[answerList.size()]; 
for (int j = 0; j < resArray.length; j++)}{ 
    resArray[j] = new InlineQueryResultArticle(inlineQuery.id(), answerList.get(j), query); 
} 
bot.answerInlineQuery(inlineQuery.id(), resArray); 

, но у меня есть это исключение во время выполнения

Exception in thread "main" retrofit.RetrofitError: 400 Bad Request 

Я редактировал первый параметр InlineQueryResultArticle конструктор из inlineQuery.id() в "id_"+j и теперь он работает.

+0

Прошли ли шаги, создав токен с помощью Botfather? Использует ли ваш код этот токен? https://core.telegram.org/bots#6-botfather – Roberg

+0

Да, эти шаги выполнены. – chris

ответ

0

Попробуйте использовать версию 2.0.0 библиотеки. Теперь сообщение об ошибке возвращается в объект ответа. И есть изменения API

+0

Спасибо, я использую новую версию библиотеки и у меня есть следующее описание реакции: 'Bad Request: RESULT_ID_DUPLICATE' Я заменил последнюю строку кода с' ответ BaseResponse = bot.execute (новый AnswerInlineQuery (inlineQuery.id(), resArray)); ' – chris

+0

@chris Вам следует использовать уникальный идентификатор для' InlineQueryResultArticle', например 'new InlineQueryResultArticle (j, answerList.get (j), query);' –

Смежные вопросы