J'ai essayé d'effectuer une requête par rapport à l'API Admin de Google pour répertorier tous les utilisateurs de mon organisation Google Apps. J'ai les autorisations pour faire cette requête dans le web UI example et obtenir des résultats, mais il 403 lorsque j'essaie de faire la requête avec un compte de service.API Google Apps 403 avec compte de service
import (
"fmt"
"io/ioutil"
"log"
"golang.org/x/net/context"
"golang.org/x/oauth2/google"
directory "google.golang.org/api/admin/directory_v1"
)
func main() {
serviceAccountJSON, err := ioutil.ReadFile(serviceAccountFile)
if err != nil {
log.Fatalf("Could not read service account credentials file, %s => {%s}", serviceAccountFile, err)
}
config, err := google.JWTConfigFromJSON(serviceAccountJSON,
directory.AdminDirectoryUserScope,
directory.AdminDirectoryUserReadonlyScope,
)
client, err := directory.New(config.Client(context.Background()))
if err != nil {
log.Fatalf("Could not create directory service client => {%s}", err)
}
users, err := client.Users.List().ViewType(publicDataView).Domain(domain).Do()
if err != nil {
log.Fatalf("Failed to query all users => {%s}", err)
}
for _, u := range users.Users {
fmt.Println(u.Name.FullName)
}
}
Chaque fois que j'exercerai je reçois un 403. Les mêmes paramètres de requête fonctionne dans la section Try it!
here donc je ne sais pas pourquoi il échoue.
Résultat: Failed to query all users => {googleapi: Error 403: Not Authorized to access this resource/api, forbidden}
avez-vous donné l'accès au compte de service? – DaImTo
Vous devez attribuer à votre compte de service une délégation sur l'ensemble du domaine https://developers.google.com/drive/web/delegation. Suivez les étapes mentionnées dans la documentation. – SGC
J'ai maintenant donné l'accès au compte de service et j'attends que cela se propage. Merci pour le conseil. –