0

我想获取并设置公司域中用户的自动转发详情。我的管理员让我成为委托管理员,以便我可以使用AdminDirectory.Users获取用户数据。 然而,当我尝试使用自己的用户ID的用户获取自动转发/标签/过滤数据,下面的错误被抛出:为绑定到Google表单的脚​​本委托域名权限

代表团拒绝[email protected]

这是引起错误的行:

var labels = Gmail.Users.Labels.list(user.id); 

看来,这可以通过委派域范围内的权力,一个Service Account进行。但是,当我尝试在此链接中突出显示的步骤时:页面要求我选择一个项目。

该脚本没有在这些项目中的功能,我不确定是否因为它是bound to Google Forms

关于如何给这个脚本赋予相同的域范围权限权限的任何建议?

请帮忙!!

回答

-1

首先,确保您为您的服务帐户启用了域名范围的委派,该委派在您提供的链接中声明。由于您创建的服务帐户需要被授予对您要访问的Google Apps网域用户数据的访问权限。在Google Apps脚本代码

此外,转到资源 - >高级谷歌服务,请确保您启用所有你使用,你在这里创建应用程序的谷歌服务。

欲了解更多信息,请查看这些线程:

+0

创建服务帐户本身就是问题!服务帐户创建页面要求我选择一个项目,并且该代码与表单关联并且不作为服务帐户项目列表中的项目。 –

1

要为谷歌创建一个服务帐户脚本:

  1. 开始在谷歌脚本IDE本身并从菜单中选择资源>开发者控制台项目...
  2. 点击“这个剧本目前正在与项目有关:”标记的链接靠近对话框的顶部。
  3. 从那里点击凭据左侧导航然后创建证书>服务帐户键按照流程来创建服务帐户 - 为角色,选择项目>服务帐户演员
  4. 然后,您可以使用Google脚本中下载的.json文件的私钥和客户端ID。

注意:您需要:

  1. 获取摹套房域管理员来设置您的client_id你想要的范围。 https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority
  2. 通过UrlFetch使用Gmail API,因为您无法使Gmail高级服务使用其他OAuth令牌。您可以使用OAuth2库并遵循以下示例:https://github.com/googlesamples/apps-script-oauth2/blob/master/samples/GoogleServiceAccount.gs