Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "io/ioutil"
- "log"
- "os"
- "golang.org/x/net/context"
- "golang.org/x/oauth2/google"
- admin "google.golang.org/api/admin/directory/v1"
- )
- func main() {
- srv := createAdminDirectoryService(
- os.Getenv("SERVICE_ACCOUNT_FILE_PATH"),
- os.Getenv("GSUITE_ADMIN_USER_EMAIL"),
- )
- members := listUsersInGroup(srv, os.Args[1])
- log.Println(members)
- }
- func createAdminDirectoryService(serviceAccountFilePath,
- gsuiteAdminUserEmail string) *admin.Service {
- jsonCredentials, _ := ioutil.ReadFile(serviceAccountFilePath)
- config, _ := google.JWTConfigFromJSON(
- jsonCredentials,
- admin.AdminDirectoryGroupMemberReadonlyScope,
- )
- config.Subject = gsuiteAdminUserEmail
- ctx := context.Background()
- client := config.Client(ctx)
- srv, _ := admin.New(client)
- return srv
- }
- func listUsersInGroup(srv *admin.Service, groupEmail string) []string {
- members, err := srv.Members.List(groupEmail).Do()
- if err != nil {
- log.Fatal(err)
- }
- membersEmails := make([]string, len(members.Members))
- for i, member := range members.Members {
- membersEmails[i] = member.Email
- }
- return membersEmails
- }
- googleapi: Error 403: Insufficient Permission: Request had insufficient authentication scopes., insufficientPermissions
- SERVICE_ACCOUNT_FILE_PATH=/path/to/json/key/of/my/service/account
- GSUITE_ADMIN_USER_EMAIL=my-admin@my-domain.com
- go run main.go my-group@my-domain.com
- func createAdminDirectoryService() *admin.Service {
- ctx := context.Background()
- client, _ := google.DefaultClient(ctx, scopes...)
- srv, _ := admin.New(client)
- return srv
- }
- googleapi: Error 403: Insufficient Permission: Request had insufficient authentication scopes., insufficientPermissions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement