Как получать новые сообщения с помощью gmail api

#javascript #google-chrome-extension #gmail-api

#javascript #google-chrome-расширение #gmail-api

Вопрос:

Я пишу расширение для браузера Google Chrome. Он использует gmail-api, и я хочу получать входящие сообщения, приходящие на адрес электронной почты пользователя, который вошел в систему. Как мне реализовать это в фоновом сценарии с точки зрения кода. Я знаю, что gmail api использует запросы post, такие как watch, тогда я не знаю, как реализовать код, чтобы я мог видеть сообщения, которые будут приходить в режиме реального времени, и мой фоновый скрипт будет обновляться во время этого события.

Мое приложение использует методы pull alerts, и соответственно в документации сказано, что я должен использовать такие запросы, какhttps://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/pull
https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/acknowledge

Как я могу использовать все это в своем коде, чтобы мой скрипт постоянно обновлялся, когда я получаю новое сообщение, и возможно ли это вообще в javascript?

 function POST_request(method,url,_async,params)
{
    let xhr= new XMLHttpRequest();
    xhr.open(method,url,_async);
    xhr.setRequestHeader('Authorization', 'Bearer '   current_token);
    xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
    xhr.send(JSON.stringify(params));
    return(xhr.responseText);
}

let tmp={
            "topicName":"projects/myprofect/topics/mytopic",
            "labelFilterAction":"include",
            "labelIds": ["INBOX"]
        };
        console.log(POST_request("POST","https://www.googleapis.com/gmail/v1/users/me/watch",false,tmp));
  

Этот запрос работает, возвращая текст представления

 {
 "historyId": "678576",
 "expiration": "1555318376357"
}
  

Комментарии:

1. Что не так с решением, которое у вас есть в настоящее время?

2. Я не понимаю, как реализовать метод получения уведомлений, как использовать методы, которые я перечислил выше?

3. Возможно, вы захотите начать с чтения этого. developers.google.com/gmail/api/guides/push

4. Я уже прочитал это, там слишком мало информации о реализации со стороны клиента. В принципе, есть информация о том, как выполнить реализацию на стороне сервера.

5. вы не должны внедрять push-уведомления на клиенте. Ваш сервер должен прослушивать изменения, а затем предварительно выполнять действия с изменениями, когда они поступят.