Ошибка Android Java при ответе на команды чата TelegramAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка Android Java при ответе на команды чата Telegram

Сообщение Anonymous »

Я создал приложение, которое взаимодействует с командами чата Telegram, такими как /start
если пользователи отправляют сообщения, равные «/start», тогда приложение отправляет ответ
вот мой код р>

Код: Выделить всё

private void respondToCommand() {

botTokens = (EditText) findViewById(R.id.botToken);
chatId = (EditText) findViewById(R.id.chatId);
String botTokenStr = botTokens.getText().toString();
String chatIdStr = chatId.getText().toString();

if (botTokenStr.isEmpty()){
Toast.makeText(getApplicationContext(), "bot token is empty!", Toast.LENGTH_LONG).show();
}else {

telegramApiUrl = "https://api.telegram.org/bot"+botTokens.getText().toString()+"/getUpdates?limit=1&offset=-1";

JsonObjectRequest request = new JsonObjectRequest(com.android.volley.Request.Method.GET, telegramApiUrl, null, new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
try {

JSONArray resultArr = response.getJSONArray("result");
if (resultArr.length() == 0) {
Toast.makeText(getApplicationContext(), "Try to send command in group chat.", Toast.LENGTH_LONG).show();
} else {
for (int i = 0; i < resultArr.length(); i++) {
JSONObject c = resultArr.getJSONObject(i).getJSONObject("message");
String msgText = c.getString("text");

String firstname = c.getString("chat");
Gson gson = new Gson();
Data data = gson.fromJson(firstname, Data.class);
if(data.id.equals(chatIdStr))
{
if(msgText.equals("/start")){
//sending reply
new RetrieveFeedTask().execute(botTokenStr, chatIdStr, "Started"+ UUID.randomUUID());
resultToken.setText("reply to command : "+msgText);
}else{
resultToken.setText("it's a message : "+msgText);
}
}else{
resultToken.setText("not chat");
}
}
}

} catch (Exception e) {
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
Toast.makeText(getApplicationContext(), volleyError.toString(), Toast.LENGTH_LONG).show();
}
});

Volley.newRequestQueue(this).add(request);

}

}
ошибка, которую я получаю в этом приложении при получении команды, оно постоянно отправляет ответ, пока пользователь не отправит другое сообщение, не содержащее команду
ошибка отображается в групповом чате Telegram
Я хочу ответить на команду, как только каждый пользователь отправит команду группе.
Любая помощь.
Я просмотрел все вопросы и попробовал большинство библиотек GitHub Java Telegrambotapi, но ничего не нашел.

Подробнее здесь: https://stackoverflow.com/questions/784 ... t-commands
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»