Добавление первого пользователя к вновь подготовленному клиенту через посредника API запрещено - PullRequest
0 голосов
/ 07 мая 2018

Мы настраиваем простой способ предоставления новых клиентов G Suite, и наш проект уже способен создавать клиентов и соответствующие подписки. Но пользователи получают только приветственное письмо от Google, и им говорят, чтобы войти. При попытке создать первого пользователя через каталог администратора API все, что мы получаем, это:

googleapi: Error 403: Access Not Configured. Admin Directory API has not been used in project xxx before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/admin.googleapis.com/overview?project=xxx then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry., accessNotConfigured"

(конфиденциальная информация помечена ххх)

Клиент API строится с использованием того же метода, что и клиент посредника, и все это делается с помощью нашей учетной записи делегированного обслуживания на уровне домена с необходимыми областями, установленными в (нашей) G Suite.

При использовании консоли Reseller Console для перехода в интерфейс администратора новых клиентов там включены API (по умолчанию).

Документы в Интернете на самом деле ничего не говорят об этом, а просто описывают, как создать пользователя, но никаких ограничений здесь нет.

Мы используем библиотеки Golang, пользовательская вставка выглядит так:

...
usr, err := adm.Users.Insert(trial.User).Do()
if err != nil {
    ...
}

...
err = adm.Users.MakeAdmin(usr.PrimaryEmail, &admin.UserMakeAdmin{
    Status: true,
}).Do()
if err != nil {
    ...
}
...

Клиент API построен следующим образом:

    const envVar = "GOOGLE_APPLICATION_CREDENTIALS"
    if filename := os.Getenv(envVar); filename != "" {
        serviceAccountJSON, err := ioutil.ReadFile(filename)
        if err != nil {
            log.Fatal("creating oauth client failed", zap.Error(err))
        }
        config, err := google.JWTConfigFromJSON(serviceAccountJSON,
            reseller.AppsOrderScope,
            admin.AdminDirectoryUserScope,
        )

        adminClient = config.Client(ctx)
        config.Subject = *impersonationUser
        resellerClient = config.Client(ctx)
    }
    res, _ := reseller.New(resellerClient)
    adm, _ := admin.New(adminClient)

1 Ответ

0 голосов
/ 07 мая 2018

Сохранение вопроса открытым на тот случай, если другие об этом споткнутся. Проблема заключалась в том, что в нашем собственном проекте API Admin SDK получил / был отключен.

Выполнен процесс установки, поэтому, если вы столкнулись с этой проблемой, попробуйте включить Admin SDK API (который отличается от Reseller API).

...