У меня проблемы с Google Cloud API.
Я успешно вошел в систему и создал новый ключ с помощью API, но проблема в том, чтобы соединиться с новым ключом, потому что файл JSON, который был впервые создан Google (в пользовательском интерфейсе), отличается от файла JSON, полученного из API.
Я не могу войти с новым ключом, Google выдает ошибку.
Мой код:
private static void ServiceAccounts(string credentialsJson)
{
LoginAsServiceAccountWithJson(credentialsJson);
IList<ServiceAccountKey> serviceAccountKeys = ListKeysOfServiceAccount(userEmail);
ServiceAccountKey newKey = CreateKeyOfServiceAccount(userEmail);
//DeleteKeyOfServiceAccount(newKey);
LoginWithServiceAccountKey(newKey, credentialsJson);
}
public static void LoginAsServiceAccountWithJson(string credentialsJson)
{
//Create credentials from the JSON file that we receive from GCP.
GoogleCredential credential = GoogleCredential.FromJson(credentialsJson)
.CreateScoped(IamService.Scope.CloudPlatform);
// Create the Cloud IAM service object
s_service = new IamService(new IamService.Initializer
{
HttpClientInitializer = credential
});
ListRolesResponse response = s_service.Roles.List().Execute();
}
public static ServiceAccountKey CreateKeyOfServiceAccount(string userEmail)
{
var newKeyDetails = s_service.Projects.ServiceAccounts.Keys.Create(
new CreateServiceAccountKeyRequest(), "projects/-/serviceAccounts/" + userEmail);
ServiceAccountKey key = newKeyDetails.Execute();
return key;
}
public static IList<ServiceAccountKey> ListKeysOfServiceAccount(string userEmail)
{
IList<ServiceAccountKey> keys = s_service.Projects.ServiceAccounts.Keys
.List($"projects/-/serviceAccounts/{userEmail}").Execute().Keys;
return keys;
}
Код работает, кроме функции «LoginWithServiceAccountKey», я не могу использовать ключ, который я только что получил от Google, для входа в систему.
JSON отличается, даже ключ намного больше в API (я видел, что в ключе из пользовательского интерфейса размер составляет 1735 символов, а в API - 3000+).
П.С. - Я знаю, что мне нужно подождать 60 секунд, прежде чем пытаться подключиться, это не проблема.