2017-03-17 2 views
0

Je suis en train de mettre à jour les utilisateurs mot de passe dans GSuite en utilisant OAuth 2.0Impossible de mettre à jour le mot de passe - GoogleApiException - pas autorisé à accéder à cette ressource

Je rencontre l'exception suivante:

UpdateEmailUserPassword Google a renvoyé une erreur contre cette utilisateur. S'il vous plaît vérifier les détails d'exception Google et assurez-vous que c'est un utilisateur existant valide

UpdateEmailUserPassword Google Détails de l'exception: L'administrateur de service a jeté une exception: Google.GoogleApiException: Google.Apis.Requests.RequestError pas autorisé à accéder à cette ressource/api [403] Erreurs [Message [Non Autorisé à accéder à cette ressource/api] Emplacement [-] Raison [interdit] Domaine [global]

Je peux confirmer que le compte administrateur utilisé est un compte super administrateur avec toutes les API Étendues autorisées pour le compte client et le compte de service. Est-ce que je manque quelque chose?

Répondre

0

Sur la base de ce thread, vous devez créer un service object autorisé avec le compte de service qui agira au nom de l'utilisateur donné. Essayez d'ajouter le membre utilisateur au ServiceAccountCredential.Initializer.

Sample:

ServiceAccountCredential credential = new ServiceAccountCredential(
    new ServiceAccountCredential.Initializer(serviceAccountEmail) 

    { 
    Scopes = new[] { DirectoryService.Scope.AdminDirectoryUser }, 
    User = "[email protected]" <-------- Added ADMIN User to fix 
    }.FromCertificate(certificate));