#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-уведомления на клиенте. Ваш сервер должен прослушивать изменения, а затем предварительно выполнять действия с изменениями, когда они поступят.