2015-07-18 162 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

是的!它工作正常 –