2015-07-18 161 views
7

我有一個自定義的鍵盤,但處理答案我需要一個強制回覆,所以我回到下一個消息的問題。我已經做到了這一點:Telegram bot API:我可以混合自定義鍵盤和force_reply嗎?

   var opts = { 
       reply_markup: JSON.stringify({ 
       keyboard: [['OK','Cancel']], 
       one_time_keyboard: true, 
       resize_keyboard: true, 
       force_reply: true 
       }) 
      }; 

鍵盤的作品,但不是force_reply。 強制回覆自己的作品?我可以不使用它與自定義鍵盤結合使用嗎?

回答

4

它可能會遲到幫助你,但它在這裏。

目前只有一個reply_markup領域是允許和這個領域必須只包含以下類型之一:ReplyKeyboardMarkupReplyKeyboardHideForceReply(見docs

在任何情況下,你可以使用ReplyKeyboardMarkup,將彈出一個自定義用戶應用程序中的鍵盤直接編碼並且編碼您的機器人,因此它只接受您自定義鍵盤中的一個答案。

此外,如果你真的想強迫用戶回覆,你可以繼續發送每個用戶的無效回答後同樣ReplyKeyboardMarkup

2

你需要指定類似這樣的標記:

$replyMarkup = array(
    'force_reply' => true, 
    'selective' => true 
); 

如果你需要有custom keyboard您可以按照此:

$keyboradsValue = array(
    array("button 1","button 2"), 
    array("button 3","button 4"), 
); 
$replyMarkup = array(
    'keyboard' => $keyboradsValue, 
    'force_reply' => true, 
    'selective' => true 
); 

之後,你需要編碼使用對象json_encode

$encodedMarkup = json_encode($replyMarkup, true); 

最後你只是把上面的代碼放在你的查詢中在sendMessage的其餘部分。

+0

你真的嘗試過嗎? –

+0

是的!它工作正常 –