我在后端服务器上使用了应用引擎和JAVA。用户可以使用opendId连接URL进行身份验证,其中代码被传递回我的服务器进行身份验证。
现在我不想做的是用我的帐户myaccount@gmail.com发送邮件给用户(刷新密码,确认帐户邮件)和我自己(服务器错误消息)。
此外,我还需要用户编写和读取数据到/从的工作表。神奇的是,我已经把它作为一个安装的离线应用程序(一次只有一个api,我从来没有让这两个api一起工作)。
我尝试过服务帐户,但从上一篇文章中有人向我解释说,为了使gmail工作,我需要一个我没有的g套件帐户,并建议我通过oAuth2认证。现在的问题是,我如何在java中通过一个单一的身份验证来实现它,我解释说,我不想授权应用程序访问特定的作用域,但应该只授权一次,因为我不希望用户有一个同意屏幕弹出,即使他们有,他们也不能认证,因为这是代表我的个人帐户。我不认为我可以使用安装的应用程序的谷歌应用引擎应用程序,但可能我错了。
只是想让你知道,我已经尝试了很多不同的礼仪,花了大约3/4天的时间试图找出一个解决方案,却没有清楚地理解/找出该做什么。
如果您需要更多的解释或代码,请告诉我任何帮助。
发布于 2018-12-28 08:18:37
我想你在这里遗漏了几个关键概念。
数据
有两种类型的数据私有用户数据和公共数据。私有用户数据由用户拥有,在那里您必须拥有访问它的权限或权限。公共数据是任何人都拥有的数据。
Oauth2
Oauth2是我们用来请求用户连接的协议,以便应用程序访问他们的数据。用户可以授予您访问、他们的 gmail帐户和他们的 google驱动器帐户的权限,允许您访问他们帐户上的表单。
服务帐户
服务帐户是预先批准的虚拟用户。作为开发人员,我们可以创建服务帐户并授予他们直接访问我们的驱动器帐户的权限,然后服务帐户将能够访问数据,而不需要经过同意,因为它已经有了预先批准的访问权限。(并不是所有google都支持服务帐户。gmail (gsuite除外)和YouTube是两种不同的方式
你想做什么,
然而,我不明白你为什么要使用用户gmail帐户向他们发送电子邮件。如果你想给他们发一封电子邮件,我认为你会使用你自己的电子邮件系统。
如果你想要做的是使用你的gmail帐户发送你的应用程序电子邮件的用户。然后,您应该考虑直接通过SMTP服务器进入您自己的帐户。拥有使用gmail的应用程序是google在试图获得应用程序批准时将标记的范围之一。您将通过与他们的大量繁文缛节来说明为什么您需要访问用户gmail帐户。
https://stackoverflow.com/questions/53952299
复制相似问题