上下文:
我的Gmail帐户不是服务帐户。我正在编写一个PHP CLI应用程序,用于检查来自特定发件人和特定主题的电子邮件。 假设此应用程序用于自定义域,但不属于GSuite。我无法控制服务器上我们域的电子邮件。
我正在使用自己的credentials.json
文件通过Google API门户网站进行身份验证。我修改了Quickstart中的代码,以根据查询获取电子邮件并获取所需的特定电子邮件。 (通过快速入门示例,用户为“我”。
参考:PHP documentation for Gmail API
问题:
如何使该应用程序对我域内的任何用户有效?有什么可能的方式,我可以执行此操作而无需具有服务器范围的委派(我希望该术语正确)访问权限的另一个帐户?
例如
$tmp = new CustomClassUsingGmailAPI();
$emailIds = ["email1@customdomain", "email2@customdomain"];
foreach($emailIds as $emailId){
$tmp->doTheRequiredTask($emailId);
}
答案 0 :(得分:2)
您要遵循的教程使用Oauth2授权您的应用程序访问用户数据。
通过快速入门示例,用户是“我”。
实际上,用户始终是登录并验证应用程序的人。访问私人用户数据的唯一方法是获得拥有该数据的人的许可。
无法访问非gsuite域用户的电子邮件。这称为数据隐私和安全性。未经您的许可,您和您的应用程序将无法访问我的数据。
除非您将域转换为gsuite域,否则,未经他们的许可,您将无法访问该域的用户电子邮件。