Get hands-on experience with 20+ free Google Cloud products and $300 in free credit for new customers.

Getting INVALID_ARGUMENT when making Update an Identity Toolkit project configuration REST API call

I wanted to enable email/password sign-in method using REST API in .NET. It uses application default credential to authorize the identity REST API call. And I defined the required types to pass the parameters in the request body. But I keep getting invalid argument.

The code I implemented is shown below :

public static async void EnableEmailPasswordAuth()
        {
            // Set up the Google API client library.
            var credential = await GoogleCredential.GetApplicationDefaultAsync();
            var initializer = new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "myAppName",
            };
            var service = new MyCustomService(initializer);
        
            var req2 = new UpdateConfigRequest {
                    Config = new Config {
                        Email = new EmailConfig {
                            Enabled = true
                        },
                        Password = new PasswordConfig {
                            Enabled = true
                        }
                    }
            };

            
        
            string requestBodyJson = JsonConvert.SerializeObject(req2);

            var RequestUri = new Uri("https://identitytoolkit.googleapis.com/admin/v2/projects/myProjectId/config");
           
            StringContent content2 = new StringContent(requestBodyJson, System.Text.Encoding.UTF8, "application/json");
            var response = await service.HttpClient.PatchAsync(RequestUri, content2);
            

            // Deserialize the response content
            string responseContent = await response.Content.ReadAsStringAsync();
            var result = NewtonsoftJsonSerializer.Instance.Deserialize<dynamic>(responseContent);

            // Output the result
            Console.WriteLine(result);
}

 public class PasswordConfig
        {
            public bool Enabled { get; set; }
            public bool PasswordRequired { get; set; }
        }

        public class EmailConfig
        {
            public bool Enabled { get; set; }
            public bool PasswordRequired { get; set; }
        }

        public class Config
        {
            public PasswordConfig Password { get; set; }
            public EmailConfig Email { get; set; }

            
        }

        public class UpdateConfigRequest
        {
            public Config Config { get; set; }
        }


     public class MyCustomService : BaseClientService
        {
            // Constructor
            public MyCustomService(
                BaseClientService.Initializer initializer) : base(initializer)
            {
            }

            // Required properties
            public override string Name => "my-custom-service";

            public override string BasePath {get;}
            public override string BaseUri {get;}

            public override IList<string> Features => throw new NotImplementedException();
        
    }

 

But I get error when running this code :

{
  "error": {
    "code": 400,
    "message": "Invalid JSON payload received. Unknown name \"Config\" at 'config': Cannot find field.",
    "errors": [
      {
        "message": "Invalid JSON payload received. Unknown name \"Config\" at 'config': Cannot find field.",
        "reason": "invalid"
      }
    ],
    "status": "INVALID_ARGUMENT",
    "details": [
      {
        "@type": "type.googleapis.com/google.rpc.BadRequest",
        "fieldViolations": [
          {
            "field": "config",
            "description": "Invalid JSON payload received. Unknown name \"Config\" at 'config': Cannot find field."
          }
        ]
      }
    ]
  }
}

 

I followed the documentation [  reference ] and provided the right request body but the error persists, can anyone help me with this.

 
0 1 4,808
1 REPLY 1
Top Labels in this Space
Top Solution Authors