2016-04-07 23 views
0

Merhaba, telgraf botum ile 'telegrammer' istemcisi ile ruby ​​içinde geliştirilen bazı sorunlarım var.Özel klavye • Ruby'de telgraf botu

1)

when '/lottery' 
    question = 'choose a number:' 
    answers = 
     Telegram::Bot::Types::ReplyKeyboardMarkup.new(
     keyboard: [ 
     ["1", "2", "3"], 
     ["4", "5", "6"], 
     ["7", "8", "9"], 
     [" ", "0", " "] 
     ], 

     one_time_keyboard: true 
    ) 

    bot.api.sendMessage(chat_id: message.chat.id, text: question, reply_markup: answers) 
i kullanıcının cevap etkileşime girebilir nasıl

? Gibi can i

/*** @ kullanici1

ve sonra bot gibi bir komut okumak nasıl

if answers == "1" 
    bot.api.sendMessage(chat_id: message.chat.id, text: "You have selected 1", reply_markup: answers) 
end 

2) olacak diyor @ kullanici1

@user size anlatıyor ***

kullanıcı klavyede şey tıklar
+0

Bunun için bir çözüm buldunuz mu? –

+0

Hatırlamıyorum, ama sanırım, telgraf botları üzerinde çalışmayı bıraktım, üzgünüm – rawnly

+1

Pekala! Problem yok! Şimdilik, inline klavyede komutları önceden tanımlayarak, kullanıcının otomatik olarak seçmesini sağlayan bir çalışma yapabilirim. –

cevap

1

1.
, gönderilen hiçbir özel komut yoktur ... şimdiden çok teşekkürler. Bir kullanıcı klavyede "1" tuşunu tıklarsa botun "1" mesajını gönderir (botun bu mesajı aldığını varsayar). Yani sadece Yani muhtemelen bilmiyorum bu

#If message text equals '1' 
when '1' 
    #Do something 

2.
hakkında görünen bir koda sahip olacak

"message" : { 
    "text" : "1" 
    #... 
} 

gibi standart veri almak nasıl 'telegrammer' istemci işleri Ancak, mesaj metninin belirli bir regex ile eşleşmesi durumunda ilk kez kontrol ederseniz, muhtemelen en iyisi olur. Metin eşleşiyorsa, yalnızca cevabınızı oluşturabilmeniz için istediğiniz parçaları almak için mesaj metnini bölmeniz gerekir.

+0

Ancak, '1', bir komut gibi davranır ve belirli bir komut için kullanıcı girdisine benzemez! Kullanıcı, belirli bir komutu yazdığında 'def()' yi kullanmalı mıyım? –

İlgili konular