2016-10-18 4 views
0

Я пытаюсь показать пользовательскую клавиатуру получателю сообщения, которое я отправляю.(Telegram bot) JSON post request не работает

Однако, я не знаю точно, почему, но следующий код не работает, когда я пытаюсь добавить параметр reply_markup в json String.

Я предполагаю, что это потому, что я положил массив reply_markup неправильно, но не могу найти способ исправить.

String query = "https://api.telegram.org/bot{token}/sendmessage"; 
String json = "{\"chat_id\":188784029,\"text\":\"123123\",\"reply_markup\":{\"keyboard\":[['1','2'],['3','4']], \"one_time_keyboard\":true}}"; 

URL url = new URL(query); 
HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
conn.setConnectTimeout(5000); 
conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 
conn.setDoOutput(true); 
conn.setDoInput(true); 
conn.setRequestMethod("POST"); 

OutputStream os = conn.getOutputStream(); 
os.write(json.getBytes("UTF-8")); 
os.close(); 

// read the response 
InputStream in = new BufferedInputStream(conn.getInputStream()); 
String result = org.apache.commons.io.IOUtils.toString(in, "UTF-8"); 


in.close(); 
conn.disconnect(); 
+0

Вы можете попробовать этот апи https://github.com/pengrad/java-telegram-bot-api вместо реализации все сами –

ответ

0

У вас есть недопустимое JSON, как вы должны использовать " вместо '.

['1','2'],['3','4'] 

должны быть заменены:

["1","2"],["3","4"] 
Смежные вопросы