我正在try 从基于go的应用程序中调用google cloud[groups memberships API][1].我查看了go[document here][2]中的文档,但不知道如何在go中编写一个简单的代码.

以下是我试图写的:

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"

我对谷歌云和golang都是新手.我的任务是找出用户是否属于谷歌云中的某个特定组.

推荐答案

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
}

Go相关问答推荐

如何使用Gorilla WebSockets实现Http.Hijacker&;alexedwards/scs/v2

如何使redis池的等待超时

用接口来模拟amqp091go的困难

使用Goldmark在golang中添加ChildNode会导致堆栈溢出

如何在 Go 服务中导入 monorepo 中的包?

Go 中的 YAML 自定义标签

xml.Unmarshal 不支持的类型 struct

设置 graphql 的最大文件上传大小(golang)

有没有办法约束(通用)类型参数?

Golang:如何判断通过缓冲通道进行通信时生产者或消费者是否较慢?

Go cmp - 如何为以 struct 为键的映射定义自定义相等性?

如果 transaction.Commit 对带有 postgres 连接的 SQL 失败,您是否需要调用 transaction.RollBack

有没有办法将 yaml node 添加到 golang 中现有的 yaml 文档中?

为什么 Go 被认为是部分抢占式的?

使用 package`regexp` 查找 Golang 中的所有 mactch 子字符串,但得到意外结果

跟踪长时间运行的任务的进度 - 正确的方法

Go Flag 用法 描述 包含 Word 值

为什么 template.ParseFiles() 没有检测到这个错误?

Go 1.18 泛型如何使用接口定义新的类型参数

Beego - 我需要context.Context而不是 Beego 上下文