将Google子标签与父标签分开

时间:2015-05-28 12:31:20

标签: email gmail gmail-api

我想检索用户在Google上的所有标签,并以一种干净的方式显示它们,就像Google自己一样:

enter image description here

当我使用Gmail API获取此标签层次结构时,我会收到以下数据:

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

enter image description here

我用" /"作为分隔符,以便找出某个子标签的父标签。这很有效,直到我意识到我可以使用" /"在名字里。长号。

是否有另一种方法可以做到这一点,或者我应该阻止用户使用" /"创建标签。在他们身上,只是生活在潜在的"坏"他们可能在别处创建的标签?感谢。

1 个答案:

答案 0 :(得分:1)

正确处理这种情况是可能的,虽然它需要一些额外的工作,而不仅仅是分裂'/'。

假设您有标签:

  • FOO
      • 巴兹/ qux

当您获取所有标签时,您将获得3个条目:

“foo” 的 “富/栏” 为 “foo /酒吧/巴兹/ qux”

请注意,虽然存在“foo”和“foo / bar”,但没有“foo / bar / baz”。该标签不存在,因为'baz / qux'是文字标签名称。

而不是简单地拆分,而是尝试前缀匹配。父标签将是最长的标签(+尾随/),它是您检查的标签的前缀。前缀后面的任何内容都是标签名称本身。