Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "io/ioutil"
  5. "log"
  6. "os"
  7.  
  8. "golang.org/x/net/context"
  9. "golang.org/x/oauth2/google"
  10. admin "google.golang.org/api/admin/directory/v1"
  11. )
  12.  
  13. func main() {
  14. srv := createAdminDirectoryService(
  15. os.Getenv("SERVICE_ACCOUNT_FILE_PATH"),
  16. os.Getenv("GSUITE_ADMIN_USER_EMAIL"),
  17. )
  18. members := listUsersInGroup(srv, os.Args[1])
  19. log.Println(members)
  20. }
  21.  
  22. func createAdminDirectoryService(serviceAccountFilePath,
  23. gsuiteAdminUserEmail string) *admin.Service {
  24. jsonCredentials, _ := ioutil.ReadFile(serviceAccountFilePath)
  25.  
  26. config, _ := google.JWTConfigFromJSON(
  27. jsonCredentials,
  28. admin.AdminDirectoryGroupMemberReadonlyScope,
  29. )
  30. config.Subject = gsuiteAdminUserEmail
  31.  
  32. ctx := context.Background()
  33. client := config.Client(ctx)
  34.  
  35. srv, _ := admin.New(client)
  36. return srv
  37. }
  38.  
  39. func listUsersInGroup(srv *admin.Service, groupEmail string) []string {
  40. members, err := srv.Members.List(groupEmail).Do()
  41. if err != nil {
  42. log.Fatal(err)
  43. }
  44.  
  45. membersEmails := make([]string, len(members.Members))
  46. for i, member := range members.Members {
  47. membersEmails[i] = member.Email
  48. }
  49.  
  50. return membersEmails
  51. }
  52.  
  53. googleapi: Error 403: Insufficient Permission: Request had insufficient authentication scopes., insufficientPermissions
  54.  
  55. SERVICE_ACCOUNT_FILE_PATH=/path/to/json/key/of/my/service/account
  56. GSUITE_ADMIN_USER_EMAIL=my-admin@my-domain.com
  57. go run main.go my-group@my-domain.com
  58.  
  59. func createAdminDirectoryService() *admin.Service {
  60. ctx := context.Background()
  61.  
  62. client, _ := google.DefaultClient(ctx, scopes...)
  63.  
  64. srv, _ := admin.New(client)
  65. return srv
  66. }
  67.  
  68. googleapi: Error 403: Insufficient Permission: Request had insufficient authentication scopes., insufficientPermissions
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement