Facebook Messenger API:如何在消息中换行

21
在Facebook Messenger聊天中,我们可以通过按“SHIFT+ENTER”键来换行。
那么如何通过Facebook Graph API(Messenger API)进行换行呢?
我看到一些答案中Graph API接受<center></center>而不是<br>,他们的API的其他部分似乎接受\r\n
目前是否有发送换行的方法,如果有,在哪里可以找到文档说明?

由于“text”属性本身有320个字符的限制,如果他们没有启用带有换行符的文本发布,我不会感到惊讶。也许你可以在你的端口将文本拆分为多个消息,然后发送它们? - CBroe
9个回答

16

12
如果您正在使用php,应该使用chr(10)。其作用类似于'\n''<br>'。此外,您可以使用<center></center>。对我来说它很有效。

@FMan.. 亲爱的,但对我来说它运行得很好。如果你的答案对你有用,那就享受这段代码吧。如果你需要更多帮助,请给我提供你的代码。 - Kumar Rakesh
1
理想情况下,他应该使用PHP_EOL来进行这项操作。 - TommyBs

6
我必须使用 \n\n 才能使换行生效。
例如。
"Sorry, We don't have any information ragarding this.\n\nSay 'Hi' to startover"

在Facebook Messenger中显示以下内容。
Sorry, We don't have any information ragarding this.
Say 'Hi' to startover

你好。能否请您添加一些示例以获得更清晰的答案。谢谢。 - Sepehr Behroozi
我在发送给聊天机器人的字符串中使用了 "\n\n" 作为换行符。这适用于 PHP。例如:"这是我发送给聊天机器人的一些文本。\n\n这是一个新行。" - Patrick Sierak

3

2

使用特定语言的换行符。

Java System.lineseprator 

php PHP_EOL 

Python os.linesep 

Nodejs os.EOL 

当我们在字符串中使用特殊字符时,JSON转换将其视为字符串的一部分。


2
尽管没有被记录下来,但我认为"\r\n"可以使用。 Graph API返回JSON响应,对于具有换行符的消息或帖子,它将返回"\r\n"。

2

我不确定您用的是哪种语言构建您的机器人,但如果您使用的是PHP,则需要在双引号字符串中包含\n,例如:

  $message = "Message \n with a line break";

使用单引号(')是不起作用的。

如果使用PHP,更好的解决方案是使用PHP_EOL常量。

无论您使用什么语言构建机器人,可能都有类似的怪癖。


1
在Python中,\\n会如预期的一样换行。

0

将文本中的"\n"转换为"\n" => 它可以工作... 使用Php,这是我的代码:(已测试)

$_text = str_replace(array("\r\n", "\r", "\n"), "\\n", $_text); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接