我有一个自定义键盘,但为了处理答案,我需要强制回复,所以我在下一条消息中回答问题。我这样做了:
var opts = {
reply_markup: JSON.stringify({
keyboard: [['OK','Cancel']],
one_time_keyboard: true,
resize_keyboard: true,
force_reply: true
})
};
键盘工作但不是force_reply。 强制回复自己的作品?我可以不将它与自定义键盘结合使用吗?
答案 0 :(得分:5)
帮助你可能会迟到,但现在就这样了。
目前只允许一个std::regex regex_number("((\\b[0-9]+)?\\.)?[0-9]+\\b");
字段,且此字段必须只包含以下类型之一:reply_markup
或ReplyKeyboardMarkup
或ReplyKeyboardHide
(请参阅docs )
在任何情况下,您都可以使用ForceReply
直接在用户应用中弹出自定义键盘并对机器人进行编码,以便它只接受您自定义键盘中的一个答案。
此外,如果你真的想强迫用户回复,你可以在每个用户的无效回答后继续发送相同的ReplyKeyboardMarkup
。
答案 1 :(得分:2)
您需要指定这样的标记:
Sub XSLTransformAndImport()
On Error GoTo ErrHandle
' SELECT Microsoft XML, v6 AS VBA REFERENCE
Dim xmldoc As New MSXML2.DOMDocument60, xslDoc As New MSXML2.DOMDocument60, newDoc As New MSXML2.DOMDocument60
' LOAD XML AND XSL FILES
xslDoc.async = False
xmldoc.Load "C:\Path\To\Input.xml"
xslDoc.async = False
xslDoc.Load "C:\Path\To\XSLTScript.xsl"
' TRANSFORM XML
xmldoc.transformNodeToObject xslDoc, newDoc
newDoc.Save "C:\Path\To\Output.xml"
' IMPORT INTO WORKBOOK AS TABLE
Workbooks.OpenXML "C:\Path\To\Output.xml", , xlXmlLoadImportToList
ExitHandle
' RELEASE RESOURCES
Set xmldoc = Nothing: Set xslDoc = Nothing: Set newDoc = Nothing
Exit Sub
ErrHandle:
MsgBox Err.Number & " - " & Err.Description, vbCritical
Err.Raise xslDoc.parseError.ErrorCode, , xslDoc.parseError.reason
Resume ExitHandle
End Sub
如果您需要$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);
的其余部分的查询字符串处。