- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的团队首次尝试使用 Google Cloud 和 GSuite 实现功能。在搜索问题和社区之后,我还没有找到似乎是正确的前进道路,或者至少没有设法获得所需的功能。
背景
我们有一个设备/显示器可以显示给定/特定 GSuite Room 资源的日历和事件信息。
作为显示有关特定事件的信息的一部分,我们希望显示与会者/受邀者的姓名。
实现
我们正在使用服务帐户成功调用日历 API。但是,当事件信息返回时,与会者信息仅包括与会者的电子邮件地址。
实现使用 Google 的 .NET 客户端库。
我们发现了一个帖子,指示我们随后需要进行跟进调用,以便向 People API 获取更多与会者信息。
当使用相同的服务帐户查询 People API 时,我们收到错误消息必须是 G Suite 域用户
。
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.6.1",
"title": "An error occured while processing your request.",
"status": 500,
"detail": "Google.Apis.Requests.RequestError\nMust be a G Suite domain user. [400]\nErrors [\n\tMessage[Must be a G Suite domain user.] Location[ - ] Reason[failedPrecondition] Domain[global]\n]\n",
"traceId": "|6007b977-42e9ca34c40a6cb0."
}
下面是当前拼凑的代码,只是试图对人员服务 API 进行成功查询
public async Task<IList<Person>> GetAttendees(string tenant, string spaceEmail)
{
var serviceAccount = _redisCache.GoogleTenantCredentials.StringGet(tenant).ToString();
var svcDto = JsonConvert.DeserializeObject<ServiceAccountDto>(serviceAccount);
if (!string.IsNullOrEmpty(serviceAccount))
{
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(svcDto.ClientEmail)
{
Scopes = new[] { PeopleServiceService.Scope.DirectoryReadonly }
}.FromPrivateKey(svcDto.PrivateKey));
var svc = new PeopleServiceService(new BaseClientService.Initializer { HttpClientInitializer = credential });
var request = svc.People.ListDirectoryPeople();
request.ReadMask = "names,emailAddresses";
request.Sources = PeopleResource.ListDirectoryPeopleRequest.SourcesEnum
.DIRECTORYSOURCETYPEDOMAINPROFILE;
var result = await request.ExecuteAsync();
return result.People;
}
return null;
}
研究错误后,我们找到了允许服务帐户全域委派的引用资料。尝试按照文档进行操作,我们在下面进行了设置。
今天我们花了一些时间与 Google 支持人员联系,他们将我们引导至带有以下标签的 Stack Overflow。
不确定我们哪里出错了。由于这是一个测试/沙盒 Google 环境,我们一直在想的一件事是 GSuite 域是否正确链接到云端,但我们在尝试验证它是否正确方面也是新手。
最佳答案
您需要为服务帐户设置域范围的委托(delegate),这是我所知道的最好的文档。 Perform G Suite Domain-Wide Delegation of Authority
除此之外,请确保您已委托(delegate)给用户。
var gsuiteUser = "user@YourDomain.com";
var credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(svcDto.ClientEmail)
{
User = gsuiteUser,
Scopes = new[] { PeopleServiceService.Scope.DirectoryReadonly }
}.FromPrivateKey(svcDto.PrivateKey));
要从 people api 读取数据,您需要一个人拥有您正在读取的数据,或者您将要读取它没有任何数据的服务帐户数据。
关于c# - 服务帐户 - 必须是 G Suite 域用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64112645/
运行下面的 junit 会引发异常。 import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit
我想用 JUnit 4 启动一些 Suite 类,使用另一个 Suite 类。我有一个包的以下测试套件: package com.manuel.package1; import org.junit.r
我在另一个包中有一个数组列表,如下所示: String [ ] classes= {"SuiteTest1", "SuiteTest2"} 如何获取这些类并设置@SuiteClasses({})? p
我想学习 Spring 。在 STS(Spring Tool Suite)3 的情况下,有“Spring legacy Project”。 4 有一个“Spring Starter Project”,
正在尝试在客户端和服务器之间建立 SSL 连接。但每当我尝试从客户端连接时,我的服务器上都会收到 javax.net.ssl.SSLHandshakeException: no cipher suit
我正在使用全新安装的 STS 3.8.3,但无法将 JPA 方面添加到 EJB 项目: 如果我尝试创建 JPA 项目,则找不到该选项: 我确信这些曾经在 STS 中可用。我错过了什么? 最佳答案 我们
所以我一直在尝试使用我的手机通过 burp 获取请求/SSL。基本上我多次非常仔细地遵循这些步骤: Configuring your Browser to work with Burp Configu
任何机构都在他们的商店中使用 Talend SOA Suite。 如果我没记错的话,它与 Oracle SOA Suite 和 Service Bus 相比如何,因为这两个产品都实现了 EIP 模式?
我试图改变 Pivotal tc Server Developer 3.0 版的日志记录,我发现启动服务器的 java 进程从不读取 catalina base 中的 logging.properti
让我们假设我有一个相当大的组织 Spring Tool Suite (STS) 用户。这些用户正在使用一些过时的 STS 版本(例如 3.1.0)。 将这些用户升级到最新的 STS+Eclipse 的
我正在使用 DevExpress 制作的 XtraGrid Suite。我找不到任何功能来执行此操作,但我很好奇您是否可以将按钮或超链接添加到网格单元格。 上下文:我有一个事件列表。每个事件都有时间、
我希望将SPF和DKIM添加到MailChimp的域中。 该域正在通过G Suite运行,并具有以下SPF的TXT记录: v=spf1 include:_spf.google.com ~all 该域还
The before and after hook documentation on Relish仅显示 before(:suite) 在 before(:all) 之前调用。 我什么时候应该使用其中
有一个Juice Shop易受攻击的应用程序,可作为docker镜像使用。我正在Windows 10上对其进行测试。 我能够使用以下命令运行该应用程序: docker pull bkimminich/
我正在尝试使用 NetSuite 中的套件脚本关闭销售订单。 我注意到已经关闭的记录的“状态”设置为“已关闭”。我尝试在提交记录之前设置此字段,但这不起作用,并且记录仍处于“待履行”阶段。 是否还涉及
我是 Thilina,我是 Spring 工具套件的新手。我的操作系统是Windows 8。 我首先提取了“spring-tool-suite-3.1.0.RELEASE-e4.2-win32-x86
我有一个脚本,您可以将测试套件作为参数传递给: $ bash-specs a.suite b.suite 如果用户没有提供任何测试套件,则执行当前文件夹中的所有测试套件。这就是我目前的做法: loca
我目前正在尝试在日志文件中写入 JUnite Suite 失败测试的总数。 我的测试套件定义如下: @RunWith(Suite.class) @SuiteClasses({Class1.class,
我已下载 spring-tool-suite-3.6.1.RELEASE-e4.4-win32-x86_64.zip 并在尝试解压缩和安装时收到以下错误: Error 0x80010135: Path
运行程序test4_4.py时报错,empty test suite. 查找资料发现原因: 默认情况下,pycharm将检查以test开头的文件,它们是unittest.testcase的子类
我是一名优秀的程序员,十分优秀!