API Gmail – ListUsersLabels – Всего сообщений нет

Я использую API GMail для получения своих ярлыков: https://developers.google.com/gmail/api/v1/reference/users/labels/list

Мой код выглядит следующим образом:

$userId = 'me';

$labels = array();

try {
    $labelsResponse = $service->users_labels->listUsersLabels($userId);

    if ($labelsResponse->getLabels()) {
        $labels = array_merge($labels, $labelsResponse->getLabels());
    }

    foreach ($labels as $label) {
        echo "<pre>";
        print_r($label);
        echo "</pre>";
    }
} catch (Excetion $e) {
    print 'An error occurred: ' . $e->getMessage();
}

Все это, как правило, работает, однако никогда не возвращает общее количество сообщений внутри метки:

Google_Service_Gmail_Label Object
(
    [colorType:protected] => Google_Service_Gmail_LabelColor
    [colorDataType:protected] => 
    [id] => INBOX
    [labelListVisibility] => labelShow
    [messageListVisibility] => hide
    [messagesTotal] => 
    [messagesUnread] => 
    [name] => INBOX
    [threadsTotal] => 
    [threadsUnread] => 
    [type] => system
    [internal_gapi_mappings:protected] => Array
        (
        )

    [modelData:protected] => Array
        (
        )

    [processed:protected] => Array
        (
        )

)

Кто-нибудь знает, почему это будет?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
205
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужен идентификатор ярлыка, чтобы получить количество прикрепленных к нему сообщений. Сначала выполните функцию Список, чтобы получить все метки, затем возьмите идентификатор нужной вам метки и используйте его в функции Получить.

В моем случае это возвращает:

{
 "id": "Label_ID",
 "name": "labelName",
 "type": "user",
 "messagesTotal": 11,
 "messagesUnread": 0,
 "threadsTotal": 11,
 "threadsUnread": 0
}

Другой способ - выполнить поисковый запрос, сохранить идентификаторы сообщений в массиве и получить длину:

def get_emails():
        user_id = 'me' #Your email
        mail_ids = []
        query = 'label:your_label' 
        response = mail_service.users().messages().list(userId=user_id, q=query).execute()
        items = response.get('messages', [])
        if not items:
                print('No mails found')
                sys.exit()
        else:
                for items in items:
                        mail_ids.append(items['id'])
        print(len(mail_ids))

Другие вопросы по теме