2016-08-01 12 views
5

में उपयोगकर्ता क्लिक करने के बाद ReplyKeyboardMarkup को छिपाने के लिए कैसे मैं Node.js telegram-bot-api का उपयोग कर रहा हूं।टेलीग्राम बॉट एपीआई

विचार:

  1. एक बटन के साथ एक कस्टम कीबोर्ड दिखाएं - "मेरा फोन नंबर साझा करें"।
  2. जब उपयोगकर्ता इस बटन पर क्लिक करता है, तो संपर्क भेजा जाना चाहिए और स्क्रीन से बटन हटाया जाना चाहिए।

    bot.sendMessage({ 
        text: 'Please give us your phone number', 
        reply_markup: JSON.stringify({ 
         keyboard: [ 
          [{ 
           text: 'Share my phone number', 
           request_contact: true 
          }] 
         ], 
         resize_keyboard: true, 
         one_time_keyboard: true 
        }) 
    }); 
    

    समस्याएं::

    • जब उपयोगकर्ता "साझा करें मेरा फोन नंबर" बटन, यह उसके संपर्क के शेयरों लेकिन बटन दृश्यमान है

यहाँ एक कोड मैं अभी उपयोग कर रहा हूँ है उसके बाद भी।

  • जब मैं request_contact ध्वज का उपयोग नहीं कर रहा हूं, one_time_keyboard सही तरीके से काम करता है (इसके उपयोग के बाद बटन छुपाता है), लेकिन उस स्थिति में भी यह बटन को छुपाता है, इसलिए उपयोगकर्ता इसे स्क्रीन पर वापस लाने के लिए आइकन पर क्लिक कर सकता है, जो नहीं है बिल्कुल अच्छा
  • कृपया मुझे बताएं कि क्या मैं यहां कुछ गलत कर रहा हूं। धन्यवाद

    उत्तर

    9

    इसे मिला।

    यहाँ एक समाधान है: `{ठीक: झूठे, error_code त्रुटि: 400, विवरण: 'गलत अनुरोध: संदेश \ कर सकते हैं' टी संपादित किया जा '}

    bot.sendMessage({ 
        chat_id: message.chat.id, 
        text: 'Some text...', 
        reply_markup: JSON.stringify({ 
         hide_keyboard: true 
        }) 
    }); 
    
    यहाँ
    0

    आपको editMessageReplyMarkup का उपयोग करना चाहिए और क्लाइंट उपयोगकर्ता के क्लिक प्राप्त होने के बाद उस संदेश के replyMarkup को शून्य स्ट्रिंग ('') के साथ अद्यतन करना चाहिए।

    अद्यतन यह इनलाइन कीबोर्ड के लिए लागू है।

    +0

    अब मैं क्या मिल रहा है है ' – Nazar

    +0

    आपको संदेश आईडी भी प्रदान करनी चाहिए। अंतिम संदेश आईडी जिसे आपने भेजा है और कीबोर्ड मार्कअप निहित है –

    संबंधित मुद्दे