[英]How to properly watch for gmail push notifications
I don't understand how to properly watch for gmail push notifications (also i know nothing about the web in terms of coding).我不明白如何正确观看 gmail 推送通知(而且我对 web 的编码一无所知)。
Google give this tutorial page: https://developers.google.com/gmail/api/guides/push谷歌给这个教程页面: https://developers.google.com/gmail/api/guides/push
What i did so far:到目前为止我做了什么:
{'historyId': '714707', 'expiration': '1618824687477'}
watch() 方法有效并给出以下结果: {'historyId': '714707', 'expiration': '1618824687477'}
So far everything works fine, but my knowledge stops here.到目前为止一切正常,但我的知识到此为止。 It seems to me that i have to implement some kind of infinite while loop on the watch method, to check for historyId
changes.在我看来,我必须在 watch 方法上实现某种无限 while 循环,以检查historyId
的变化。 But if so, why would there be a stop()
method on the watch()
method, and also why would there be a expiration
field on the watch result?但如果是这样,为什么watch()
方法上会有一个stop()
方法,为什么 watch 结果上会有一个expiration
字段? What should i do from there?我应该从那里做什么?
Here is my implementation so far:到目前为止,这是我的实现:
from __future__ import print_function
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
SCOPES = ['https://mail.google.com/']
MY_TOPIC_NAME = 'my/toppic/name'
creds = None
if os.path.exists('token.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file('./my_creds.json', SCOPES)
creds = flow.run_local_server(port=0)
with open('token.json', 'w') as token:
token.write(creds.to_json())
gmail = build('gmail', 'v1', credentials=creds)
request = {'labelIds': ['INBOX'],'topicName': MY_TOPIC_NAME}
gmail.users().watch(userId='me', body=request).execute()
historyId
in simple words reflects the status of your mailbox at a certain moment (eg when you set-up a watch request) historyId
简单的说就是反映了你邮箱在某个时刻的状态(比如你设置了watch请求的时候)historyId
此值仅供参考,因为除非另有说明,否则您只会收到有关特定historyId
对应时刻之后发生的邮箱更新的通知
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.