如何从应用程序调用 google 云身份 API

How to call google cloud identity APIs from an application

我正在尝试从基于 go 的应用程序调用 google 云 [groups memberships api][1]。我查看了 go [document here][2] 中的文档,但我不确定如何编写简单的代码来执行此操作。

这是我尝试写的内容:

package main

import (
    "context"
    "google.golang.org/api/cloudidentity/v1beta1"
  )
  
 func main() {  
    ctx := context.Background()
    cloudidentityService, err := cloudidentity.NewService(ctx)
    res, err := cloudidentity.groups.memberships.lookup('placeholder-value', 'memberKey.namespace')
 }

在 运行 上,我收到错误消息“无法引用未导出的名称 cloudidentity.groups”

我是 Google 云和 golang 的新手。我的任务是查找用户是否属于 google 云中的给定组。 [1]: https://cloud.google.com/identity/docs/reference/rest/v1beta1/groups.memberships [2]: https://pkg.go.dev/google.golang.org/api/cloudidentity/v1beta1#GroupsMembershipsLookupCall

In Go, a name is exported if it begins with a capital letter. 这意味着您从导入包中调用的任何方法都必须由这些包导出,因此必须以大写字母开头。这应该可以解决您的问题。注意

之间的区别
  • .Groups.Memberships.Lookup
  • .groups.memberships.lookup
package main

import (
    "context"
    "google.golang.org/api/cloudidentity/v1"
)

func main() {
    ctx := context.Background()
    svc, err := cloudidentity.NewService(ctx)
    if err != nil {
        panic(err)
    }
    res, err := svc.Groups.Memberships.Lookup("...").Context(ctx).Do()
    if err != nil {
        panic(err)
    }
    _ = res
}