【问题标题】:Getting "parse error" when creating Gmail label创建 Gmail 标签时出现“解析错误”
【发布时间】:2015-10-26 00:04:33
【问题描述】:

我正在使用 Gmail API 创建标签,使用 URL https://www.googleapis.com/gmail/v1/users/me/labels。非常适合我。然而,一些客户报告此失败并出现 http 错误 400,并出现以下错误:

“域”:“全局”,“原因”:“parseError”,“消息”:“解析错误”

调用输入的json很简单,例子:

{"name":"秘书杂项"}

知道问题可能是什么吗?为什么完全相同的 json 对我有用,但对其他人不起作用?

【问题讨论】:

  • 你能展示你的代码吗?听起来您正在使用 ajax 或类似的东西,并且不要在您的数据上使用 JSON.stringify。
  • 不,我正在使用 C++ 并使用 libcurl 进行直接 http 调用。我通过“手”生成 json。我给出的示例正是通过 http POST 传输的内容。我想知道 Google 是否遗漏了各种 CR/LF 和空白字符。虽然这并不能解释为什么它对我有用 - 也许不同服务器上的不同版本的 Gmail 软件?
  • 我明白了。我将发布您可能想尝试的答案!不过我可能错了。

标签: gmail-api


【解决方案1】:

根据规范,您显示的数据应该不适用于任何人。它很适合你!试试这个:

POST https://www.googleapis.com/gmail/v1/users/me/labels?access_token={YOUR_API_KEY}

{
 "labelListVisibility": "labelShow",
 "messageListVisibility": "show",
 "name": "Secretarial Misc."
} 

【讨论】:

  • 谢谢。假设可见性参数是可选的(我认为,因为它们具有默认值)。可能虽然缺少 CR/LF 和其他空白可能是一个问题。我会做出改变并让我的客户尝试一下。
  • 不幸的是,这不起作用。这是我提交的 json:{ "name":"Inbox (migrated)/2014 2015 school year info", "messageListVisibility":"show", "labelListVisibility":"labelShow" } 我得到的回复是:{ “错误”:{“错误”:[{“域”:“全局”,“原因”:“解析错误”,“消息”:“解析错误”}],“代码”:400,“消息”:“解析错误”}}
  • @JeffMcKay 无赖!您确定将数据作为字符串传递吗?即'{"name": ... }'。很抱歉听起来像是破唱片,但我认为这仍然行不通:) 另外,不要忘记将您的 Content-type 设置为 application/json
  • 非常感谢@Tholle,我遇到了完全相同的问题,这为我解决了!
  • 我正在为 NodeJS 使用 googleapis 库。在JSON.stringify-ing 之后发送请求正文。这毁了我的两天。希望这对偶然发现此问题的人有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-10
  • 2014-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 2016-10-19
相关资源
最近更新 更多