如何通过Gmail API获取INBOX等指定标签的child labels?
从Gmail系统标签中获取子标签的方法
首先明确:Gmail的系统预设标签(如INBOX、STARRED、SENT)本身不支持创建子标签,只有自定义标签可以设置父标签。如果你的需求是找出所有父标签为这些系统标签的自定义子标签,可以按以下步骤处理:
1. 遍历已获取的全量标签列表
你已经通过GET https://gmail.googleapis.com/gmail/v1/users/me/labels拿到了所有标签数据,接下来需要遍历每个标签对象,重点检查parentId字段。
2. 定位目标系统标签的ID
先从全量标签中筛选出目标系统标签,记录它们的id:
- 系统标签的
type字段值为system,name字段对应标签名称(如"Inbox"、"Starred"、"Sent") - 提取这些标签的
id,作为后续匹配子标签的依据。
3. 筛选关联的子标签
遍历所有标签,找出parentId等于上述系统标签ID的标签,这些就是你要找的子标签。
示例逻辑(伪代码)
# 假设已获取的全量标签列表为all_labels system_label_map = {} target_child_labels = [] # 收集目标系统标签的ID for label in all_labels: if label["type"] == "system" and label["name"] in ["Inbox", "Starred", "Sent"]: system_label_map[label["id"]] = label["name"] # 筛选对应系统标签的子标签 for label in all_labels: if "parentId" in label and label["parentId"] in system_label_map: target_child_labels.append({ "子标签名称": label["name"], "所属父系统标签": system_label_map[label["parentId"]], "子标签ID": label["id"] }) # 输出结果 print(target_child_labels)
注意事项
- 只有自定义标签可以关联到系统标签作为其子标签,系统标签本身无法成为其他标签的子标签。
- 如果最终没有筛选出结果,说明你尚未创建过关联到这些系统标签的自定义子标签。
内容的提问来源于stack exchange,提问作者premkamal
相关产品推荐
相关产品推荐

