在访问 gmail api 时从进入同意屏幕的 url 获取 authuser
Posted
技术标签:
【中文标题】在访问 gmail api 时从进入同意屏幕的 url 获取 authuser【英文标题】:get authuser from url coming in consent screen while accessing gmail api 【发布时间】:2015-01-03 21:04:46 【问题描述】:我创建了一个应用程序,在该应用程序中,我从应用程序中的 gmail 收件箱中获取所有邮件。现在我想要的是当用户点击我的应用程序中的任何电子邮件时,用户应该被重定向到实际的 gmail 和用户点击的电子邮件应该在 gmail 中打开。因此,我通过在我的应用程序的 href 标记中提供 mail.google.com/mail/u/0/#inbox/ 链接来实现该功能。
现在我面临的问题是假设用户在浏览器中打开了多个 gmail 帐户。由于我提供了硬编码器 url“https://mail.google.com/mail/u/0/#inbox/”,它总是以“0”authuser id 打开邮件。那么有什么方法可以在我的应用程序中动态获取这个值。我检查了gmail是如何做到的,假设当我打开第一个gmail帐户时,url将是mail.google.com/mail/u/0/#inbox。如果我打开另一个帐户,则 url 将是 mail.google.com/mail/u/1/#inbox。所以设置为 0,现在将是 1。
所以我检查了当我们访问任何 gmail api 时,谷歌会提供同意屏幕,如果打开了多个帐户,谷歌会为您提供屏幕,您可以在其中选择帐户。选择帐户后,将出现同意屏幕。所以 url 就像“https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/gmail.readonly&response_type=code&redirect_uri=http://localhost:8080/web/guest/GmailDashboard&access_type=online&approval_prompt=auto&client_id=19502573792-0fvebvrb4jg1usmn2r0hfka31la8gtfs.apps.googleusercontent.com&hl=en&from_login=1&as=4ded27cb6d28ee3b&pli=1&authuser=0”。我想要应用程序中的最后一个参数 authuser。
任何帮助将不胜感激。
感谢和问候, Abdulbasit F Shaikh。
【问题讨论】:
How can I reliably link to a Gmail conversation given a thread ID if the user is logged into multiple accounts?的可能重复 【参考方案1】:一种解决方案是包含一个名为 authUser
的查询参数,该参数指定您要链接到的电子邮件帐户:
https://mail.google.com/mail/?authuser=your.email.address@gmail.com#all/138d85da096d2126
请看以下链接:
How can I reliably link to a Gmail conversation given a thread ID if the user is logged into multiple accounts?
【讨论】:
一个网站的链接可能会中断,请在***上发布解决方案:)【参考方案2】:我认为您可以提供下面的 url 以动态访问多个 gmail 地址,而不是提供硬代码 url:
https://accounts.google.com/ServiceLoginAuth?continue=http://mail.google.com/gmail&service=mail&Email=yourname@gmail.com
【讨论】:
谢谢 gui47。我试过以下网址。但这里的问题是我已经登录了我的 gmail 帐户。然后它也要求我再次登录。另一件事是我想打开一封受人尊敬的电子邮件。所以在 url 的某个地方,我需要传递我想打开的电子邮件的 messageID 与“mail.google.com/mail/u/0/#inbox/149dde503b69c6a2”相同。如您所见,最后一个值“149dde503b69c6a2”是我要打开的电子邮件的消息 ID。任何帮助将不胜感激。以上是关于在访问 gmail api 时从进入同意屏幕的 url 获取 authuser的主要内容,如果未能解决你的问题,请参考以下文章
使用 Codelabs 教程通过 Cloud Functions 访问 Gmail API
如何在Gmail API中强制删除Google默认选定的帐户?