У меня есть консольное приложение, написанное с C#
поверх платформы .NET Core 2.2.
Я пытаюсь использовать свое приложение для подключения Google My Business API для создания записей .
Но каждый раз, когда я пытаюсь вызвать REST API, я получаю следующую ошибку
Запрос имеет недопустимые учетные данные для аутентификации.Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации.См. https://developers.google.com/identity/sign-in/web/devconsole-project.
Код работал ранее, но по какой-то странной причине он остановился!
Вот пример, где я получаю токен аутентификации, а затем вызываю API для получения спискаиз учетных записей Google .
var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets
{
ClientId = "Client ID",
ClientSecret = "Client Secret",
}, new[] { "https://www.googleapis.com/auth/plus.business.manage" }, "google username", CancellationToken.None);
using (var client = new HttpClient())
{
//client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", credential.Token.AccessToken);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var c = await client.GetAsync("https://mybusiness.googleapis.com/v4/accounts");
var accountContentss = await c.Content.ReadAsStringAsync();
c.EnsureSuccessStatusCode();
var accountContent = await c.Content.ReadAsStringAsync();
}
Я могу без проблем пройти проверку подлинности и получить маркер доступа.Однако второй вызов API по какой-то причине завершается неудачей.
Как правильно вызвать Google API?Помимо AccesToken, есть ли что-то еще, что должно быть передано в заголовке?