如何从 Gmail OAuth2.0 的访问令牌中获取 userId
How to get userId from access token for Gmail OAuth2.0
我想做什么
我正在尝试创建一个可以从用户的 Gmail 中提取电子邮件的网络应用程序。我知道我需要通过 Google OAuth 2.0.
进行身份验证
我想做的是在收件箱上设置 watch()
请求。然后,当监视的收件箱收到一封电子邮件时,我想得到通知。我正在使用 Google 的 PubSub API.
我做了什么
我遵循了 Gmail OAuth documentation 中给出的步骤,但对如何为多个用户存储多个访问令牌感到困惑。
因此,当用户首次使用他们的 Gmail 帐户登录时,我会生成一个代码,我用它来交换访问令牌。然后我将其存储在数据库中。但是,当我收到有关电子邮件的通知时,我只会从 API 用户的电子邮件地址收到。我想为该用户做一些进一步的 API 调用。所以现在我需要为特定用户检索令牌。但是...
问题
...如何通过电子邮件存储访问令牌?我只有在他们 login/authorize 后才能访问他们的令牌。有没有办法从访问令牌中检索电子邮件地址?然后我可以将访问令牌存储为 <email address>
-><access token>
.
的键值对
您可以在他们首次登录时立即执行 Users: getProfile 请求,如下所示:
GET https://www.googleapis.com/gmail/v1/users/me/profile?access_token=<ACCESS_TOKEN_OF_THE_LOGGED_IN_USER>
响应:
{
"emailAddress": "example@gmail.com", // Here is the user's email address.
"messagesTotal": 6446,
"threadsTotal": 4495,
"historyId": "570232" // Here is the current historyId of his account.
}
然后,当您通过 watch()
收到推送请求时,您可以在上面对 see what has happened 的响应中使用 historyId
。
我想做什么
我正在尝试创建一个可以从用户的 Gmail 中提取电子邮件的网络应用程序。我知道我需要通过 Google OAuth 2.0.
进行身份验证我想做的是在收件箱上设置 watch()
请求。然后,当监视的收件箱收到一封电子邮件时,我想得到通知。我正在使用 Google 的 PubSub API.
我做了什么
我遵循了 Gmail OAuth documentation 中给出的步骤,但对如何为多个用户存储多个访问令牌感到困惑。
因此,当用户首次使用他们的 Gmail 帐户登录时,我会生成一个代码,我用它来交换访问令牌。然后我将其存储在数据库中。但是,当我收到有关电子邮件的通知时,我只会从 API 用户的电子邮件地址收到。我想为该用户做一些进一步的 API 调用。所以现在我需要为特定用户检索令牌。但是...
问题
...如何通过电子邮件存储访问令牌?我只有在他们 login/authorize 后才能访问他们的令牌。有没有办法从访问令牌中检索电子邮件地址?然后我可以将访问令牌存储为 <email address>
-><access token>
.
您可以在他们首次登录时立即执行 Users: getProfile 请求,如下所示:
GET https://www.googleapis.com/gmail/v1/users/me/profile?access_token=<ACCESS_TOKEN_OF_THE_LOGGED_IN_USER>
响应:
{
"emailAddress": "example@gmail.com", // Here is the user's email address.
"messagesTotal": 6446,
"threadsTotal": 4495,
"historyId": "570232" // Here is the current historyId of his account.
}
然后,当您通过 watch()
收到推送请求时,您可以在上面对 see what has happened 的响应中使用 historyId
。