提问者:小点点

GmailAPI中的查询搜索不能作为网页版使用


我正在尝试提取带有特定颜色星星的邮件(GmailAPI)。例如,蓝星。

def listMessagesMatchingQuery(service, user_id='me', query=''):
    try:
        response = service.users().messages().list(userId=user_id,
                                                   q=query).execute()
        print(response)
        messages = []
        if 'messages' in response:
            messages.extend(response['messages'])

        while 'nextPageToken' in response:
            page_token = response['nextPageToken']
            response = service.users().messages().list(userId=user_id, q=query,
                                                   pageToken=page_token).execute()
            messages.extend(response['messages'])
        return messages

    except errors.HttpError as error:
        print('An error occurred: %s' % error)


print(listMessagesMatchingQuery(GMAIL, query="has:blue-star"))

它不像网页版那样工作,它返回0封电子邮件。另一个查询效果很好(尝试了“from:…”、“has:附件”、“has: Drive”、“前:…”、“后:…”等)。找不到解决方案,我需要按星星的颜色对电子邮件进行排序。


共1个答案

匿名用户

在GmailAPI中查询超级明星是相当棘手的。您可能需要将其更改为例如蓝色明星的l:^ss_sb,如本文所述。

has:yellow-star <=> l:^ss_sy
has:blue-star <=> l:^ss_sb 
has:red-star <=> l:^ss_sr 
has:orange-star <=> l:^ss_so
has:green-star <=> l:^ss_sg
has:purple-star <=> l:^ss_sp
has:red-bang <=> l:^ss_cr
has:yellow-bang <=> l:^ss_cy
has:blue-info <=> l:^ss_cb
has:orange-guillemet <=> l:^ss_co
has:green-check <=> l:^ss_cg
has:purple-question <=> l:^ss_cp