0

我正在尝试使用此资源创建一个新设备:

https://cloud.google.com/identity/docs/reference/rest/v1beta1/devices/create

我已经定义了 API 的范围,如下所示。

    @Override
    protected List<String> getScopes() {
        return Collections.singletonList(
                "https://www.googleapis.com/auth/cloud-identity"
        );
    }

我正在调用这样的 API 创建方法。

            val createDeviceRequest = new CreateDeviceRequest()
                    .setCustomer("customers/my_customer")
                    .setDevice(createDeviceModel.toGoogle());
            
            cloudIdentityClientFactory
                    .createFor(adminGoogleId)
                    .devices()
                    .create(createDeviceRequest)
                    .execute();

“createDeviceRequest”实体值是这样的:

在此处输入图像描述

创建客户端没有错误,因为创建客户端工作正常,我能够调用列表端点并在响应正文中使用 3 个设备获得成功响应。我了解该范围工作正常,因为我只使用上面定义的 1 个范围,并且我可以访问列表设备。

https://cloud.google.com/identity/docs/reference/rest/v1beta1/devices/list

一个可以正常工作的列表设备示例:

            val x = cloudIdentityClientFactory
                    .createFor(adminGoogleId)
                    .devices()
                    .list()
                    .setCustomer("customers/my_customer")
                    .execute();

当我尝试调用创建端点时,我收到 403 Forbidden 错误。我想知道这个被禁止消息的原因是什么,有什么办法可以解决它。

POST https://cloudidentity.googleapis.com/v1beta1/devices
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "The caller does not have permission",
    "reason" : "forbidden"
  } ],
  "message" : "The caller does not have permission",
  "status" : "PERMISSION_DENIED"
}

谢谢。

4

1 回答 1

1

我建议您将问题发布在 Github上。

他们可能会更好地回答您与 Java 和 GCP API 相关的问题。

于 2020-08-21T20:11:43.857 回答