Почему?
Я играю с API GMAIL, для небольшого проекта на работе
Требуемый результат
ЧтоЯ пытаюсь получить от API Gmail, все ли потоки сообщений изменены после определенной отметки времени / даты.
Что у меня есть до сих пор
Пока мне удается получитьвсе темы, созданные после определенной даты - с помощью стандартных поисковых запросов Gmail см. - https://support.google.com/mail/answer/7190.
Проблема
Это здорово, что я могу получить все темы сообщений послеопределенная дата, но проблема в том, что мне задают запрос:
after:[todays date - 7 days)
Это покажет мне все цепочки сообщений, до 7 дней назад - но что, если у меня есть ветка сообщений, созданная 8дней назад и все еще обновляется ?.Какой мой лучший вариант, чтобы получить все цепочки сообщений, изменено с настоящего момента до 7 дней назад?
Проверка всех цепочек сообщений, все время не вариант :)
Код
$client = getClient();
$oService = new Google_Service_Gmail($client);
$sUser = 'me';
$tsMailsAfter = '1554280000';
$sIn = 'INBOX';
//before;, after:, in:(inbox, sent)
$aThreads = getlistThread($oService, $sUser, 'after:'.$tsMailsAfter.' in:'.$sIn);
function getlistThread($service, $userId, $aQuery = '')
{
$threads = array();
$pageToken = NULL;
do
{
try
{
$opt_param = array();
if ($pageToken)
{
$opt_param['pageToken'] = $pageToken;
}
$opt_param['q'] = $aQuery;
$threadsResponse = $service->users_threads->listUsersThreads($userId, $opt_param);
if($threadsResponse->getThreads())
{
$threads = array_merge($threads, $threadsResponse->getThreads());
$pageToken = $threadsResponse->getNextPageToken();
}
}
catch (Exception $e)
{
print 'An error occurred: ' . $e->getMessage();
$pageToken = NULL;
}
}
while ($pageToken);
return $threads;
}