9

我有一个自定义键盘,但要处理答案,我需要强制回复,所以我会在下一条消息中回复问题。我已经这样做了:

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

键盘有效,但 force_reply 无效。强行回复自己的作品?我不能将它与自定义键盘结合使用吗?

4

2 回答 2

6

帮助您可能为时已晚,但它就在这里。

目前只reply_markup允许一个字段,并且该字段必须仅包含以下类型之一:ReplyKeyboardMarkupReplyKeyboardHideForceReply(请参阅文档

在任何情况下,您都可以使用ReplyKeyboardMarkup它将直接在用户应用程序中弹出一个自定义键盘并对您的机器人进行编码,以便它只接受您自己的自定义键盘中的一个答案。

此外,如果您真的想强制用户回复,您可以ReplyKeyboardMarkup在每个用户的无效答案之后继续发送相同的内容。

于 2015-10-06T22:01:43.360 回答
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

于 2017-07-15T15:37:50.670 回答