【问题标题】:Line break in Linkedin APILinkedin API 中的换行符
【发布时间】:2019-10-21 07:24:56
【问题描述】:

Linkedin API 带回车符

我在Linkedin Caption 上使用回车通过Linkedin Share article API 分享帖子。但是在通过 API 共享时,它会返回类似

的错误

“将请求正文解析为 JSON 时出错 非法未引用字符((CTRL-CHAR,代码 10)):必须使用反斜杠转义才能包含在 [Source: (com.linkedin.data. ByteString$ByteArrayVectorInputStream)"

有没有办法解决这个问题并在标题中传递回车。请帮忙。

我尝试使用“\n”替换回车,因为它显示为使用反斜杠进行转义,但它对我不起作用。

$msg = 'test1 测试2

    test3';

$msg = preg_replace("/[^A-Za-z ]/","\n",$msg);

我已经尝试了上述方法,但我再次从 Linkedin API 得到相同的错误响应。

分享带有如下标题的帖子的预期结果,

“测试1 测试2

test3"

但它不会向用户帐户发送帖子,而是会给出类似

的错误

“将请求正文解析为 JSON 时出错 非法未引用字符((CTRL-CHAR,代码 10)):必须使用反斜杠转义才能包含在 [Source: (com.linkedin.data. ByteString$ByteArrayVectorInputStream)"

【问题讨论】:

  • 尝试在你的字符串中加入一个实际的反斜杠-n;当您编写"\n" 时,php 会将其转换为换行符,API 会看到与以前相同的内容。 (例如,在代码中写入"\\n" 以插入真正的反斜杠。)
  • 向我们展示您实际创建 JSON 的代码。你是手动做的吗?然后停止那个,这不是什么聪明的事情——创建适当的数据结构,然后在上面使用json_encode
  • @alexis 非常感谢。我试过你的把戏,效果很好。
  • 不客气。这不是技巧,它是生成 api 要求的常规 PHP 语法。我已经把它写出来作为答案,请“接受”它以将此问题标记为已解决。 (然后请注意@04FS 写的内容!)

标签: php api share linkedin article


【解决方案1】:

要在字符串中插入文字\n,您需要转义反斜杠;否则 PHP 会理解 \n 符号并将其更改为 actual 换行符,这是您要避免的。所以,在你的代码 sn-p 中写 "\\n" 而不是 "\n"

但是@04FS 的评论是正确的:你不应该自己生成 json 格式!把你的数据放在一个数组中,不用担心换行符等转义,使用json_encode序列化它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2015-06-03
    • 2015-12-02
    • 1970-01-01
    • 2023-03-10
    • 2016-01-19
    相关资源
    最近更新 更多